<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://bugs.maemo.com/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Maemo training material/Getting Started/Testing the installation - Revision history</title>
		<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5-7</generator>
		<lastBuildDate>Mon, 06 Apr 2026 12:06:02 GMT</lastBuildDate>
		<item>
			<title>allnameswereout:&amp;#32;update as per http://talk.maemo.org/showthread.php?t=33712</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=21358&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=21358&amp;oldid=prev</guid>
			<description>&lt;p&gt;update as per http://talk.maemo.org/showthread.php?t=33712&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:35, 30 October 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 402:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 402:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; user@system:~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; \ &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; user@system:~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kb&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;nbsp; &lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;extension Composite&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Starting Xephyr for use with the SDK.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Starting Xephyr for use with the SDK.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:02 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 30 Oct 2009 11:35:57 GMT</pubDate>			<dc:creator>allnameswereout</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti:&amp;#32;Training material/Getting Started/Testing the installation moved to Maemo training material/Getting Started/Testing the installation</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=11419&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=11419&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=Training_material/Getting_Started/Testing_the_installation&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Training material/Getting Started/Testing the installation (page does not exist)&quot;&gt;Training material/Getting Started/Testing the installation&lt;/a&gt; moved to &lt;a href=&quot;/Maemo_training_material/Getting_Started/Testing_the_installation&quot; title=&quot;Maemo training material/Getting Started/Testing the installation&quot;&gt;Maemo training material/Getting Started/Testing the installation&lt;/a&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:26, 3 March 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;!-- diff generator: internal 2026-04-06 12:06:03 --&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 03 Mar 2009 10:26:34 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti:&amp;#32;added the template</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=10100&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=10100&amp;oldid=prev</guid>
			<description>&lt;p&gt;added the template&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 17:56, 22 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{LaTeX2HTML2Wiki}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:03 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 22 Jan 2009 17:56:47 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti:&amp;#32;/* 3.7 Running Hello World in the AF */</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9991&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9991&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;3.7 Running Hello World in the AF&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:38, 21 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 520:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 520:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The screen is still a bit off (we don't get nice borders around our main GtkLabel widget) but looks already somewhat better. The text is scaled to be more in sync with the other text sizes and also the color is in sync with the platform color (it's not gray anymore).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The screen is still a bit off (we don't get nice borders around our main GtkLabel widget) but looks already somewhat better. The text is scaled to be more in sync with the other text sizes and also the color is in sync with the platform color (it's not gray anymore).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In &amp;quot;maemo Application Development&amp;quot; material you'll learn how to adapt our application for maemo, so that it will &amp;quot;sit better&amp;quot; in the environment. You'll also learn how to react to HID-events, how to use widgets and how to package your software so that it can be easily distributed to users and installed on Internet Tablets. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In &amp;quot;maemo Application Development&amp;quot; material you'll learn how to adapt our application for maemo, so that it will &amp;quot;sit better&amp;quot; in the environment. You'll also learn how to react to HID-events, how to use widgets and how to package your software so that it can be easily distributed to users and installed on Internet Tablets.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/div&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:03 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 21 Jan 2009 22:38:42 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti:&amp;#32;/* 3.4 Starting virtual X server (Xephyr) */</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9990&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9990&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;3.4 Starting virtual X server (Xephyr)&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:38, 21 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 394:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 394:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; Starting virtual X server (Xephyr)=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; Starting virtual X server (Xephyr)=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;Open another terminal emulator (don't close your sbox session).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Open another terminal emulator (don't close your sbox session).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Start up the server with: &amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Start up the server with: &amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:03 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 21 Jan 2009 22:38:07 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti:&amp;#32;/* 3.2 Writing a GUI Hello World */</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9989&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9989&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;3.2 Writing a GUI Hello World&lt;/span&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:37, 21 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 131:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 131:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt; Writing a GUI Hello World=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt; Writing a GUI Hello World=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;The following example shows how to write the first GUI program. N.B. Only GTK+ library is used here, meaning that the platform provided widgets or coding style are not utilized. That will be discussed soon. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;A simple GTK+ Hello World (gtk_helloworld-1.c)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The following example shows how to write the first GUI program. N.B. Only GTK+ library is used here, meaning that the platform provided widgets or coding style are not utilized. That will be discussed soon. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;A simple GTK+ Hello World (gtk_helloworld-1.c)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;lt;tt&amp;gt;''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;lt;tt&amp;gt;''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:04 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 21 Jan 2009 22:37:15 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>myrtti at 22:35, 21 January 2009</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9988&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9988&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:35, 21 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00410000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00420000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt; Writing a GUI Hello World]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00430000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; Running the GUI Hello World]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00440000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; Starting virtual X server (Xephyr)]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00450000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; Directing the client to virtual server]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00460000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;6&amp;lt;/span&amp;gt; Starting the Application Framework]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[node4.html#SECTION00470000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;7&amp;lt;/span&amp;gt; Running Hello World in the AF]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;. Testing the installation=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-06 12:06:04 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 21 Jan 2009 22:35:37 GMT</pubDate>			<dc:creator>myrtti</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
		<item>
			<title>qlin:&amp;#32;New page: &lt;div class=&quot;margins&quot;&gt;  * &lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt; Testing Scratchbox * [[node4.html#SECTION0042000000000000000...</title>
			<link>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9945&amp;oldid=prev</link>
			<guid>http://bugs.maemo.com/index.php?title=Maemo_training_material/Getting_Started/Testing_the_installation&amp;diff=9945&amp;oldid=prev</guid>
			<description>&lt;p&gt;New page: &amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;  * &lt;a href=&quot;/index.php?title=Node4.html&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Node4.html (page does not exist)&quot;&gt;&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox&lt;/a&gt; * [[node4.html#SECTION0042000000000000000...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[node4.html#SECTION00410000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox]]&lt;br /&gt;
* [[node4.html#SECTION00420000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt; Writing a GUI Hello World]]&lt;br /&gt;
* [[node4.html#SECTION00430000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; Running the GUI Hello World]]&lt;br /&gt;
* [[node4.html#SECTION00440000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; Starting virtual X server (Xephyr)]]&lt;br /&gt;
* [[node4.html#SECTION00450000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; Directing the client to virtual server]]&lt;br /&gt;
* [[node4.html#SECTION00460000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;6&amp;lt;/span&amp;gt; Starting the Application Framework]]&lt;br /&gt;
* [[node4.html#SECTION00470000000000000000|&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;7&amp;lt;/span&amp;gt; Running Hello World in the AF]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;. Testing the installation=&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt; Testing Scratchbox=&lt;br /&gt;
&lt;br /&gt;
The following shows how to create a small non-graphical Hello World program, to verify that the Scratchbox environment works: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;Program listing for our Hello World (helloworld.c)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * helloworld.c&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * This maemo code example is licensed under a MIT-style license,&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * that can be found in the file called &amp;quot;License&amp;quot; in the same&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * directory as this file.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Simple standard I/O (printf)-based Hello World that we can use to&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * test our toolchains.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
 '''&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;''' &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;lt;stdio.h&amp;gt;&amp;lt;/font&amp;gt; ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* printf */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* main implementation */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;main&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; argc&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;char&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; argv&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;printf&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello world&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* In Linux, each process upon termination must set its exit code.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     Exit code 0 means success to whoever executed this program. It&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     is routinely used inside scripts to test whether running some&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     program succeeded or not. Other exit codes mean failure. Each&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     program is free to use different non-zero codes to signify&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     different kinds of failures. These are normally listed in the&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     manual page for the program (since there is no standard). If you&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     forget to set your exit code, it will be undefined. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;''' &amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, it has to be verified that the proper directory is chosen. This can be done by using pwd (print working directory). At this point, the directory should be the home directory: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; pwd&lt;br /&gt;
 /home/user&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, start an editor and write the small hello world program (you may use the above listing as a template if you wish): &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; nano helloworld.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nano is a GNU version of &amp;quot;pico&amp;quot; editor, which is a simple text file editor. Use Control+character to execute the commands listed on the bottom of the screen. WriteOut means &amp;quot;save&amp;quot;. You may also use vi or an external editor to the SDK environment (see below for hints on using vi and emacs). &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; gcc -Wall -g helloworld.c -o helloworld&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ls -F hello* &lt;br /&gt;
 helloworld* helloworld.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -g option to gcc tells the compiler to add debugging symbols to the generated output file. -Wall will tell the compiler to enable most of the syntax and other warnings that the source code could trigger. -o helloworld then tells the output filename to which gcc will write the result binary.&lt;br /&gt;
&lt;br /&gt;
The -F option to ls is mainly useful when working with a non-color terminal (e.g. paper) to indicate the type of different files. The asterisk after helloworld signifies that the file is an executable. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ./helloworld&lt;br /&gt;
 Hello world&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running the binary should not produce any surprises. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; file helloworld&lt;br /&gt;
 helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),&lt;br /&gt;
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file tool is a generic utility that will load some bytes from the start of the given file and then use its internal database to decode what the file might &amp;quot;mean&amp;quot;. In this case, it will correctly decode the file as a X86 format binary file. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ldd helloworld&lt;br /&gt;
    linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
    libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb7e9f000)&lt;br /&gt;
    /lib/ld-linux.so.2 (0xb7fd2000)&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ls -l /lib/libc.so.6&lt;br /&gt;
 lrwxrwxrwx  1 user user 11 Nov 12 15:52 /lib/libc.so.6 -&amp;gt; libc-2.5.so&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ls -l /lib/libc-2.5.so&lt;br /&gt;
 -rwxr-xr-x  1 user user 1213256 Sep  7 13:28 /lib/libc-2.5.so&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The names of dynamic libraries that the executable uses will be shown on the left-hand column, and the files where the libraries live on the system if executing the program will be shown on the right-hand column. After that, use ls to check out the exact version of the C library that is used in the SDK by using the &amp;quot;long listing format&amp;quot; -l option (running these commands using the ARMEL target would yield more or less the same results). N.B. The linux-gate.so.1 is a so-called hack to support a certain way of doing system calls on the X86 architecture, and is not always present on newer systems.&lt;br /&gt;
&lt;br /&gt;
When comparing the version of libc used on the real system with ls -l, it will probably show a difference (in version numbers). This means that the executables that were built inside sbox use libraries that are also inside sbox. This also means a stable development platform, especially when working in team where each member has their own Linux, which they have customized. This might not seem very important at this stage, but when encountering all the different tools that are used in free software development, this feature of sbox will come in handy.&lt;br /&gt;
&lt;br /&gt;
Scratchbox does not contain any logic to emulate the kernel (or to use a different kernel for running programs inside sbox). The only easy possibility for this is using the sbrsh CPU-transparency option. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;textbf&amp;quot;&amp;gt;vi&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is also possible to use vi (Visual Interactive) editor inside sbox. It is possible to install own favorite editors inside sbox (with the debian-devkit), but the following examples will use nano, since it is the easiest to start with. To learn vi, it is best to ask an Internet search engine for a &amp;quot;vi tutorial&amp;quot;. There are lots of them to be found. To understand why vi can be considered to be &amp;quot;strange&amp;quot;, it is useful to know its history first. Using vi is optional of course.&lt;br /&gt;
&lt;br /&gt;
The version of vi that is commonly installed on Linux systems is really vim (VI iMproved), which is a more user friendly vi, including syntax high-lighting and all kinds of improvements. sbox has a program called vimtutor installed to help in learning the use of vi interactively.&lt;br /&gt;
&lt;br /&gt;
It is also fairly simple to use existing editors. /scratchbox/users/x/home/x/ is the home directory of user x when accessing it from the real Linux desktop. Ubuntu comes with gedit, which is a fairly good graphical editor that also supports syntax high-lighting and multiple tabs for editing multiple files at the same time.&lt;br /&gt;
&lt;br /&gt;
And as a final note, also emacs can be used.&lt;br /&gt;
&lt;br /&gt;
Here is how to do it:&lt;br /&gt;
&lt;br /&gt;
* Start emacs outside of sbox&lt;br /&gt;
* In emacs, use M-x server-start&lt;br /&gt;
* Inside sbox use emacsclient filename to open the file for editing in your emacs&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt; Writing a GUI Hello World=&lt;br /&gt;
&lt;br /&gt;
 The following example shows how to write the first GUI program. N.B. Only GTK+ library is used here, meaning that the platform provided widgets or coding style are not utilized. That will be discussed soon. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;A simple GTK+ Hello World (gtk_helloworld-1.c)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * gtk_helloworld-1.c&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * This maemo code example is licensed under a MIT-style license,&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * that can be found in the file called &amp;quot;License&amp;quot; in the same&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * directory as this file.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * A simple GTK+ Hello World. You need to use Ctrl+C to terminate&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * this program since it doesn't implement GTK+ signals (yet).&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 &lt;br /&gt;
 '''&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;''' &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;lt;stdlib.h&amp;gt;&amp;lt;/font&amp;gt; ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* EXIT_* */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Introduce types and prototypes of GTK+ for the compiler. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
 '''&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;''' &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;lt;gtk/gtk.h&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;main&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; argc&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;char&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; argv&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* We'll have two references to two GTK+ widgets. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   GtkWindow&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; window&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
   GtkLabel&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; label&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Initialize the GTK+ library. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_init&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;amp;&amp;lt;/font&amp;gt;argc&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;&amp;lt;/font&amp;gt;argv&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create a window with window border width of 12 pixels and a&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     title text. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   window &amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_new&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;GTK_TYPE_WINDOW&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;border-width&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;12&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;title&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello GTK+&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&lt;br /&gt;
     NULL&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create the label widget. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   label &amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt; '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_new&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;GTK_TYPE_LABEL&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;label&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello World!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&lt;br /&gt;
     NULL&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Pack the label into the window layout. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_container_add&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_CONTAINER&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;window&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt; '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_WIDGET&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;label&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Show all widgets that are contained by the window. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_widget_show_all&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_WIDGET&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;window&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Start the main event loop. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;main: calling gtk_main&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_main&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Display a message to the standard output and exit. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;'''&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;main: returned from gtk_main and exiting with success&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* The C standard defines this condition as EXIT_SUCCESS, and this&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     symbolic macro is defined in stdlib.h (which GTK+ will pull in&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     in-directly). There is also a counter-part for failures:&amp;lt;/font&amp;gt;''&lt;br /&gt;
 ''&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     EXIT_FAILURE. */&amp;lt;/font&amp;gt;''&lt;br /&gt;
   '''&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;''' EXIT_SUCCESS&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build your program: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c -o gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1.c:15:21: gtk/gtk.h: No such file or directory&lt;br /&gt;
 gtk_helloworld-1.c: In function `main':&lt;br /&gt;
 gtk_helloworld-1.c:20: error: `GtkWindow' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:20: error: (Each undeclared identifier is reported only once&lt;br /&gt;
 gtk_helloworld-1.c:20: error: for each function it appears in.)&lt;br /&gt;
 gtk_helloworld-1.c:20: error: `window' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:21: error: `GtkLabel' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:21: error: `label' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:24: warning: implicit declaration of function `gtk_init'&lt;br /&gt;
 gtk_helloworld-1.c:28: warning: implicit declaration of function `g_object_new'&lt;br /&gt;
 gtk_helloworld-1.c:28: error: `GTK_TYPE_WINDOW' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:34: error: `GTK_TYPE_LABEL' undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `gtk_container_add'&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_CONTAINER'&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_WIDGET'&lt;br /&gt;
 gtk_helloworld-1.c:42: warning: implicit declaration of function `gtk_widget_show_all'&lt;br /&gt;
 gtk_helloworld-1.c:45: warning: implicit declaration of function `g_print'&lt;br /&gt;
 gtk_helloworld-1.c:46: warning: implicit declaration of function `gtk_main'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Compiling leads to a lot of errors&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen, this does not look at all promising. At the start of the source code, there was #include. The compiler needs to be told where it should look for that critical GTK+ header file. It is also quite likely that some special flags need to be passed to the compiler in order for it to use the proper compilation settings when building GTK+ software. How to decide which flags to use?&lt;br /&gt;
&lt;br /&gt;
This is where a tool called pkg-config comes to the rescue. It is a simple program that provides a unified interface to output compiler, linker flags and library version numbers. Its utility will be discussed later, when starting the automating of the building process. For now, the pkg-config will be used manually. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; pkg-config --list-all | sort&lt;br /&gt;
 .. listing cut to include only relevant libraries ..&lt;br /&gt;
 dbus-glib-1    dbus-glib - GLib integration for the free desktop message bus&lt;br /&gt;
 gconf-2.0      gconf - GNOME Config System.&lt;br /&gt;
 gdk-2.0        GDK - GIMP Drawing Kit (x11 target)&lt;br /&gt;
 gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling&lt;br /&gt;
 glib-2.0       GLib - C Utility Library&lt;br /&gt;
 gnome-vfs-2.0  gnome-vfs - The GNOME virtual file-system libraries&lt;br /&gt;
 gtk+-2.0       GTK+ - GIMP Tool Kit (x11 target)&lt;br /&gt;
 hildon-1       hildon - Hildon widgets library&lt;br /&gt;
 hildon-fm-2    hildon-fm - Hildon file management widgets&lt;br /&gt;
 pango          Pango - Internationalized text handling&lt;br /&gt;
 x11            X11 - X Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Listing the installed &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; packages.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; also has some other commands that will prove useful: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; pkg-config --modversion gtk+-2.0&lt;br /&gt;
 2.10.12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Listing the version of an installed &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; package, GTK+ in this case.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; pkg-config --cflags gtk+-2.0&lt;br /&gt;
 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0&lt;br /&gt;
 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0&lt;br /&gt;
 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2&lt;br /&gt;
 -I/usr/include/libpng12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Getting the necessary options and flags for &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; that allow using proper header files with GTK+&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen, there are many. With this version of GTK+, all of them are -I options. They are used to tell the compiler which additional directories to check for system header files in addition to the default ones. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; pkg-config --libs gtk+-2.0&lt;br /&gt;
 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm&lt;br /&gt;
 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2&lt;br /&gt;
 -ldl -lglib-2.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Getting the necessary options and flags for &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; that allow linking against the GTK+ library.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When linking the application, the linker has to be told which libraries to link against. In fact, the whole program linking phase will fail (as shown shortly) without this information.&lt;br /&gt;
&lt;br /&gt;
Now it is time to try and compile the software again, this time using the compilation flags that pkg-config provides: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c  \&lt;br /&gt;
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1&lt;br /&gt;
 /var/tmp/ccQ14x4c.o: In function `main':/home/user/gtk_helloworld-1.c:24:&lt;br /&gt;
  undefined reference to `gtk_init'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `gtk_window_get_type'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `g_object_new'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `gtk_label_get_type'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `g_object_new'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_widget_get_type'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_get_type'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_add'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_get_type'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `g_type_check_instance_cast'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_show_all'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:45: undefined reference to `g_print'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:46: undefined reference to `gtk_main'&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:49: undefined reference to `g_print'&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Trying to build again, with proper C flags.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command above might seem somewhat strange to someone not having used UNIX command shells. What is happening here is the backtick expansion. It is an operation where the shell will start another shell to execute just the text inside the backticks. In this case, another shell is started to run &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;--cflags&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;gtk+-2.0&amp;lt;/code&amp;gt;. Normal output from the commands is then read into the main shell, and this output is replaced into the location where the backticks were. N.B. It is very important to use the ` character. Not ', nor the other quote character that might be used in a Swedish keyboard layout (also used in Finland). In some keyboard layouts, it will be necessary to press space after the backtick since it is also used for character composition (try backtick and letter 'a').&lt;br /&gt;
&lt;br /&gt;
Something like $(pkg-config ..) might also be encountered. This is the same operation as backtick. However, backtick is more portable across antique UNIX shells. Nowadays, it is a matter of taste which way to use it.&lt;br /&gt;
&lt;br /&gt;
The errors printed by gcc are quite different this time. These errors come from ld, which is the binary code linker in Linux systems and it is complaining about missing symbols (the undefined references). Obviously something is still missing.&lt;br /&gt;
&lt;br /&gt;
The linker needs to be told where to find the missing symbols. Since it is the linker this is all about, and not the compiler, the missing symbols are found in the library files. To fix the problem (again with the backticks), &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;--libs&amp;lt;/code&amp;gt; can be used: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c  \&lt;br /&gt;
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1  \&lt;br /&gt;
  `pkg-config --libs gtk+-2.0`&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Successful compile and linking.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The order and placement of the pkg-configs above is important: the &amp;lt;code&amp;gt;--cflags&amp;lt;/code&amp;gt; need to be placed as early as feasible, but the &amp;lt;code&amp;gt;--libs&amp;lt;/code&amp;gt; must come last (this does matter in some problematic linking scenarios).&lt;br /&gt;
&lt;br /&gt;
The next step is to repeat the basic commands that were used before with the non-GUI hello world: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ls -l gtk_helloworld-1&lt;br /&gt;
 -rwxrwxr-x  1 user user 16278 Nov 20 00:22 gtk_helloworld-1&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; file gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),&lt;br /&gt;
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ldd gtk_helloworld-1&lt;br /&gt;
   linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
   libgtk-x11-2.0.so.0 =&amp;gt; /usr/lib/libgtk-x11-2.0.so.0 (0xb7c4c000)&lt;br /&gt;
   libgdk-x11-2.0.so.0 =&amp;gt; /usr/lib/libgdk-x11-2.0.so.0 (0xb7bc8000)&lt;br /&gt;
   libatk-1.0.so.0 =&amp;gt; /usr/lib/libatk-1.0.so.0 (0xb7bad000)&lt;br /&gt;
   libgdk_pixbuf-2.0.so.0 =&amp;gt; /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b97000)&lt;br /&gt;
   libm.so.6 =&amp;gt; /lib/libm.so.6 (0xb7b71000)&lt;br /&gt;
   libpangocairo-1.0.so.0 =&amp;gt; /usr/lib/libpangocairo-1.0.so.0 (0xb7b68000)&lt;br /&gt;
   libpango-1.0.so.0 =&amp;gt; /usr/lib/libpango-1.0.so.0 (0xb7b2b000)&lt;br /&gt;
   libcairo.so.2 =&amp;gt; /usr/lib/libcairo.so.2 (0xb7ab5000)&lt;br /&gt;
   libgobject-2.0.so.0 =&amp;gt; /usr/lib/libgobject-2.0.so.0 (0xb7a7a000)&lt;br /&gt;
   libgmodule-2.0.so.0 =&amp;gt; /usr/lib/libgmodule-2.0.so.0 (0xb7a76000)&lt;br /&gt;
   libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0xb7a71000)&lt;br /&gt;
   libglib-2.0.so.0 =&amp;gt; /usr/lib/libglib-2.0.so.0 (0xb79dd000)&lt;br /&gt;
   libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb78b2000)&lt;br /&gt;
   libX11.so.6 =&amp;gt; /usr/lib/libX11.so.6 (0xb77bd000)&lt;br /&gt;
   libXfixes.so.3 =&amp;gt; /usr/lib/libXfixes.so.3 (0xb77b8000)&lt;br /&gt;
&lt;br /&gt;
   libXtst.so.6 =&amp;gt; /usr/lib/libXtst.so.6 (0xb77b3000)&lt;br /&gt;
   libfontconfig.so.1 =&amp;gt; /usr/lib/libfontconfig.so.1 (0xb7788000)&lt;br /&gt;
   libXext.so.6 =&amp;gt; /usr/lib/libXext.so.6 (0xb777a000)&lt;br /&gt;
   libXrender.so.1 =&amp;gt; /usr/lib/libXrender.so.1 (0xb7771000)&lt;br /&gt;
   libXi.so.6 =&amp;gt; /usr/lib/libXi.so.6 (0xb7769000)&lt;br /&gt;
   libXrandr.so.2 =&amp;gt; /usr/lib/libXrandr.so.2 (0xb7762000)&lt;br /&gt;
   libXcursor.so.1 =&amp;gt; /usr/lib/libXcursor.so.1 (0xb7759000)&lt;br /&gt;
   /lib/ld-linux.so.2 (0xb7fc3000)&lt;br /&gt;
   libpangoft2-1.0.so.0 =&amp;gt; /usr/lib/libpangoft2-1.0.so.0 (0xb772b000)&lt;br /&gt;
   libfreetype.so.6 =&amp;gt; /usr/lib/libfreetype.so.6 (0xb76c6000)&lt;br /&gt;
   libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0xb76b7000)&lt;br /&gt;
   libpng12.so.0 =&amp;gt; /usr/lib/libpng12.so.0 (0xb7692000)&lt;br /&gt;
   libXau.so.6 =&amp;gt; /usr/lib/libXau.so.6 (0xb768f000)&lt;br /&gt;
   libXdmcp.so.6 =&amp;gt; /usr/lib/libXdmcp.so.6 (0xb7689000)&lt;br /&gt;
   libexpat.so.1 =&amp;gt; /usr/lib/libexpat.so.1 (0xb7669000)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Victory at last!&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the last ldd listing, this simple Hello World manages to require quite a number of other libraries to run. The program directly only requires GTK+, but GTK+ needs GDK (and all the other libraries that were covered in the introduction). Those libraries in turn need other libraries and so on.&lt;br /&gt;
&lt;br /&gt;
So, what is seen here is almost the full list of all required libraries to run. Almost, because modern UNIX systems (and Linux) can also load libraries on demand (called runtime dynamic module loading).&lt;br /&gt;
&lt;br /&gt;
This might make one wonder, whether writing simple a Hello World really is so painful. It is actually much simpler in real life. The reason why this chapter introduces the various errors is that they will be encountered in actual situations quite early on. This chapter serves as a reference to some possible errors, and (hopefully) also show a solution.&lt;br /&gt;
&lt;br /&gt;
All of these tools will be needed later on, when starting the packaging of the software, and they will not be covered at this level of detail there.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt; Running the GUI Hello World=&lt;br /&gt;
&lt;br /&gt;
 Let's try to execute our nice Hello World (inside sbox): &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ./gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1[4759]: GLIB WARNING ** Gtk - cannot open display:&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; echo $DISPLAY&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Don't despair, the end is near.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seems that GTK+ is having problems opening the connection to the X server. This can be verified by displaying the contents of the DISPLAY environmental variable, and indeed, it comes out empty. If the DISPLAY variable contains :0.0, it means that the value has been copied from the real graphical session into sbox, and clients will try to connect to the real X server (and probably fail in authentication).&lt;br /&gt;
&lt;br /&gt;
Xephyr was set up in the previous chapter, so now it has to be started so that it can be used as the server for all clients running inside the Scratchbox session.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt; Starting virtual X server (Xephyr)=&lt;br /&gt;
&lt;br /&gt;
 Open another terminal emulator (don't close your sbox session).&lt;br /&gt;
&lt;br /&gt;
Start up the server with: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 user@system:~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac  \ &lt;br /&gt;
  -extension Composite&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Starting Xephyr for use with the SDK.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first parameter is the Display number (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) that X server should start on (and provide to clients). &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is used here since it is normally unused in regular Linux desktop environments.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; parameters tells Xephyr how large the screen should be (in pixels) and how many bits to use for color-information (16). This is the resolution in pixels of Internet Tablets. &amp;lt;code&amp;gt;-dpi 96&amp;lt;/code&amp;gt; tells the server to tell its clients that the logical to physical size mapping should be done with 96 dots-per-inch setting (should the client request that information). The DPI setting is mainly important when dealing with fonts and text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ac&amp;lt;/code&amp;gt; tells Xephyr that any client may connect to it. This means that you should be extremely careful about your networking environment so that rogue users will not target your Xephyr with their own clients.&lt;br /&gt;
&lt;br /&gt;
The last parameter (&amp;lt;code&amp;gt;-extension Composite&amp;lt;/code&amp;gt;) disables the Composite extension.&lt;br /&gt;
&lt;br /&gt;
When Xephyr starts, it will connect to the X server given in the &amp;lt;code&amp;gt;DISPLAY&amp;lt;/code&amp;gt; environmental variable that &amp;lt;span class=&amp;quot;textbf&amp;quot;&amp;gt;it&amp;lt;/span&amp;gt; sees. Do not modify or touch your real &amp;lt;code&amp;gt;DISPLAY&amp;lt;/code&amp;gt; variable that Xephyr sees.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Only the X server running&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.1:''' Only the X server running&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xephyr_empty.png|604px|Image xephyr_empty]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default the server will have one screen, and it will be filled by the default X server background pattern (a tight braid made out of white pixels on black).&lt;br /&gt;
&lt;br /&gt;
Note that the terminal emulator (more specifically, the shell that the emulator started) is waiting for Xephyr to end. If you ever need to kill all the graphical applications running in the SDK, you can just close your Xephyr. This will leave the daemons running inside sbox (D-Bus and friends). Normally this is not a good idea. To ask the foreground process to terminate itself, use &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt;. Inside sbox this same technique can be used to terminate a graphical client that you start from the command line (as will be done shortly).&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; Directing the client to virtual server=&lt;br /&gt;
&lt;br /&gt;
Now that we have an X server running, it's time to switch back to sbox.&lt;br /&gt;
&lt;br /&gt;
We start by setting the environmental variable to use a local domain socket to the X server, and tell all X clients to connect to Display number 2, since that's where we just started our Xephyr on: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; export DISPLAY=:2&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; ./gtk_helloworld-1&lt;br /&gt;
 main: calling gtk_main&lt;br /&gt;
 [[Ctrl+c]]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Setting the correct &amp;lt;code&amp;gt;DISPLAY&amp;lt;/code&amp;gt; content and running a simple GUI program.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We'll need to terminate the program with &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt;, since it doesn't implement any graphical methods of closing it. Note that you'll need to set your &amp;lt;code&amp;gt;DISPLAY&amp;lt;/code&amp;gt; correctly on each sbox login (or target switch).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;A puny little Hello World&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.2:''' A puny little Hello World&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xephyr_gtk_helloworld.png|604px|Image xephyr_gtk_helloworld]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not really impressive, is it? If you remember what a window manager is, you will note that since it's missing (we didn't start any for the X server) you cannot control the Hello World with your mouse. Kill it with &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt; for now (we'll start it again in a moment).&lt;br /&gt;
&lt;br /&gt;
To quickly detach the foreground process from your shell and continue running it in the background, use the following key-combination &amp;lt;code&amp;gt;Ctrl+z&amp;lt;/code&amp;gt; and then use the shell command &amp;lt;code&amp;gt;bg&amp;lt;/code&amp;gt;. Between those two steps the process will be &amp;quot;paused&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;6&amp;lt;/span&amp;gt; Starting the Application Framework=&lt;br /&gt;
&lt;br /&gt;
The next step is to have a nice graphical environment that will implement a nicer graphical screen. We will start a series of clients each of which have a specific role. These were introduced before.&lt;br /&gt;
&lt;br /&gt;
To start the Application Framework (referred to as AF from now on), we can use a handy script that comes with the SDK: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt; af-sb-init.sh start&lt;br /&gt;
 Sample files present.&lt;br /&gt;
 Starting DBUS system bus&lt;br /&gt;
 Starting D-BUS session bus daemon&lt;br /&gt;
 Starting Maemo Launcher: maemo-launcher&lt;br /&gt;
 maemo-launcher: error rising the oom shield for pid=4847 status=5632.&lt;br /&gt;
 Starting Sapwood image server&lt;br /&gt;
 Starting Matchbox window manager&lt;br /&gt;
 sapwood-server[4858]: GLIB INFO default - server started&lt;br /&gt;
 Starting clipboard-manager&lt;br /&gt;
 Starting Keyboard&lt;br /&gt;
 maemo-launcher: invoking '/usr/bin/hildon-input-method.launch'&lt;br /&gt;
 Starting Hildon Desktop&lt;br /&gt;
 maemo-launcher: invoking '/usr/bin/hildon-desktop.launch'&lt;br /&gt;
 .. listing cut for brevity ..&lt;br /&gt;
 [sbox-DIABLO_X86: ~] &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;small class=&amp;quot;FOOTNOTESIZE&amp;quot;&amp;gt;Using the &amp;lt;code&amp;gt;af-sb-init.sh&amp;lt;/code&amp;gt; script to start the AF.&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We use &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; parameters to start and stop the graphical environment. If everything works, you should see a screen resembling this one:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Much better&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.3:''' Much better&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:af_startup.png|604px|Image af_startup]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;.&amp;lt;span class=&amp;quot;arabic&amp;quot;&amp;gt;7&amp;lt;/span&amp;gt; Running Hello World in the AF=&lt;br /&gt;
&lt;br /&gt;
 While AF is running, let's start our Hello World again (&amp;lt;code&amp;gt;./gtk_helloworld-1&amp;lt;/code&amp;gt; in sbox): &amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;[[Image:xephyr_af_and_gtk_helloworld.png|604px|Image xephyr_af_and_gtk_helloworld]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there now is a window manager running, our client will get much larger window to draw in. GTK+ will scale the widget accordingly (only there is only one widget in our Hello World). Note that the screen still looks a bit off. If you &amp;quot;close the application&amp;quot; by pressing the X in top-right corner, you will notice that our Hello World will disappear from the screen. Since we haven't implemented signals yet and thus don't handle window destruction, our Hello World application will only be hidden. It is still running (as you can see in your sbox terminal emulator since the shell doesn't display its prompt). Stop the Hello World with &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Next we'll use a SDK utility script called &amp;lt;code&amp;gt;run-standalone.sh&amp;lt;/code&amp;gt;. Its job is to setup correct environmental variables for themes and communication for the command that is given to it as its command line parameter.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;run-standalone.sh ./gtk_helloworld-1&amp;lt;/code&amp;gt; to start your X client again: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;[[Image:xephyr_af_and_gtk_helloworld_runstandalone.png|604px|Image xephyr_af_and_gtk_helloworld_runstandalone]]&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The screen is still a bit off (we don't get nice borders around our main GtkLabel widget) but looks already somewhat better. The text is scaled to be more in sync with the other text sizes and also the color is in sync with the platform color (it's not gray anymore).&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;maemo Application Development&amp;quot; material you'll learn how to adapt our application for maemo, so that it will &amp;quot;sit better&amp;quot; in the environment. You'll also learn how to react to HID-events, how to use widgets and how to package your software so that it can be easily distributed to users and installed on Internet Tablets. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 21 Jan 2009 14:09:26 GMT</pubDate>			<dc:creator>qlin</dc:creator>			<comments>http://bugs.maemo.com/Talk:Maemo_training_material/Getting_Started/Testing_the_installation</comments>		</item>
	</channel>
</rss>