<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Anderson Lizardo's Blog</title>
	<atom:link href="http://lizardo.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lizardo.wordpress.com</link>
	<description>My Free/Open Source Software activity log, and random bits</description>
	<lastBuildDate>Fri, 23 Oct 2009 19:48:39 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='lizardo.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/23654a2be483418c082c85dc1ec39f26?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Anderson Lizardo's Blog</title>
		<link>http://lizardo.wordpress.com</link>
	</image>
			<item>
		<title>Installing Qt for S60 daily snapshots on Linux</title>
		<link>http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/</link>
		<comments>http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 14:24:19 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[S60]]></category>
		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=138</guid>
		<description><![CDATA[Update (2009-09-24): Add workaround for GCCE issue.
Update (2009-10-05): Update gnupoc patch to apply against 20091005 snapshot. Remove workarounds from &#8220;Known Issues&#8221; sections that are already integrated into new patch.
Update (2009-10-07): Add instruction for installing gnupoc build dependencies.
Update (2009-10-23): New patch version (v9), that now applies cleanly to latest snapshots.
In a previous post, I provided instructions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=138&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><b>Update (2009-09-24):</b> Add workaround for GCCE issue.<br />
<b>Update (2009-10-05):</b> Update gnupoc patch to apply against 20091005 snapshot. Remove workarounds from &#8220;Known Issues&#8221; sections that are already integrated into new patch.<br />
<b>Update (2009-10-07):</b> Add instruction for installing gnupoc build dependencies.<br />
<b>Update (2009-10-23):</b> New patch version (v9), that now applies cleanly to latest snapshots.</p>
<p>In a <a href="http://lizardo.wordpress.com/2009/07/29/running-qt-for-s60-sdk-on-linux/">previous post</a>, I provided instructions on running Qt for S60 SDK (the &#8220;Tower&#8221; release) on Linux. However, for those who want to play with the bleeding edge Qt for S60 development, you might want to try out the latest 4.6 development code from Qt GIT. I put <a href="http://lizardo.wordpress.com/2009/09/05/compiling-qt-for-s60-from-git-on-linux/">some instructions</a> for compiling Qt for S60 from GIT on Linux as well, but unfortunately it requires the RVCT compiler to build.</p>
<p>Fortunately, today espenr <a href="http://labs.trolltech.com/blogs/2009/09/24/daily-binaries-of-qt-for-symbians60-available/">announced daily snapshots</a>, that will allow those who don&#8217;t have access to RVCT to try out the latest 4.6 development as well <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . So how to get this thing running on Linux? The snapshots so far consist only of the Windows installer and a .zip containing the source code.</p>
<p>By &#8220;merging&#8221; information from my two previous posts, I will describe below how to install the Qt for S60 SDK daily snapshots on Linux. <b>Even if you have a previous installation of the Symbian SDK, you will need to follow the full instructions again</b> (sorry), as these instructions contain a bunch of bug fixes to the Symbian SDK. Hopefully this requirement will go away at some point, when all Symbian SDK portability issues are addressed.</p>
<p>These instructions were tested only in the following environment:</p>
<ul>
<li>Host: x86 32-bits (running Ubuntu 8.10)</li>
<li>Device and SDK: S60 5.0 (N97 and 5800)</li>
</ul>
<h1>Preparation</h1>
<p>Download all required files:</p>
<ul>
<li><a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/S60_Platform_SDKs/">S60_5th_Edition_SDK_v1_0_en.zip</a> (623MB): S60 Platform SDK for Symbian OS, for C++</li>
<li><a href="http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/">s60_open_c_cpp_plug_in_v1_6_en.zip</a> (35MB): Open C/C++ Plugin</li>
<li><a href="http://pepper.troll.no/s60prereleases/snapshots/">qt-embedded-s60-opensourceYYYYMMDD-4.6.0-tp1.exe</a>: Qt for S60 latest daily snapshot (you need only the .exe for running the SDK). Last tested version: 2009-10-05</li>
<li><a href="http://www.codesourcery.com/sgpp/lite/arm/releases/2005Q1C">gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2</a> (11MB): CodeSourcery&#8217;s ARM toolchain for Symbian</li>
<li><a href="http://www.martin.st/symbian/gnupoc-package-1.13.tar.gz">gnupoc-package-1.13.tar.gz</a> (6.2MB): scripts and patches to run S60 SDK on Linux</li>
<li><a href="http://franciscoalecrim.com/lizardo/qt_s60_gnupoc_v9.patch">qt_s60_gnupoc_v9.patch</a>: patch for gnupoc, adding support for Qt for S60 installation and various bug fixes</li>
</ul>
<p>(many thanks to <a href="http://franciscoalecrim.com/">Francisco Keppler</a> for hosting this last file on his web site!)</p>
<p>For building the native tools from gnupoc, you will need:</p>
<ul>
<li>the GCC C/C++ compilers</li>
<li>development files for zlib</li>
<li>development files for openssl</li>
</ul>
<p>On Ubuntu, you can install these using the following command:</p>
<p><code>sudo apt-get install build-essential zlib1g-dev libssl-dev</code></p>
<h1>Installation</h1>
<ol>
<li>First, set some environment variables to be used on the following steps (feel free to modify them to install the SDK on some other location). <strong>NOTE: these variables are not necessary after installation.</strong></li>
<p><code># root directory where all SDK files will be installed<br />
GNUPOC_ROOT=$HOME/gnupoc<br />
&nbsp;<br />
# toolchain directory<br />
TOOLCHAIN_DIR=$GNUPOC_ROOT/csl_gcc<br />
&nbsp;<br />
# S60 SDK directory<br />
S60_SDK_DIR=$GNUPOC_ROOT/symbian-sdks/5.0<br />
&nbsp;<br />
# Qt SDK directory<br />
QT_S60_DIR=$GNUPOC_ROOT/qt_s60<br />
&nbsp;<br />
# wrapper directory (used by gnupoc)<br />
WRAPPER_DIR=$GNUPOC_ROOT/bin<br />
&nbsp;<br />
# where all downloaded files are located<br />
SRC_DIR=$HOME/downloads<br />
</code></p>
<li>Install ARM toolchain:</li>
<p><code>mkdir -p $TOOLCHAIN_DIR<br />
tar -C $TOOLCHAIN_DIR -xvjf \<br />
&nbsp;&nbsp;$SRC_DIR/gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2</code></p>
<li>Unpack gnupoc sources and apply the patch that adds Qt for S60 support:</li>
<p><code>tar -xvzf $SRC_DIR/gnupoc-package-1.13.tar.gz<br />
cd gnupoc-package-1.13<br />
patch -p1 -i $SRC_DIR/qt_s60_gnupoc_v8.patch</code></p>
<li>Install Symbian S60 SDK:</li>
<p><code>cd sdks<br />
./install_gnupoc_s60_50 \<br />
&nbsp;&nbsp;$SRC_DIR/S60_5th_Edition_SDK_v1_0_en.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR</code></p>
<li>Install gnupoc wrappers and native tools:</li>
<p><code>./install_wrapper $WRAPPER_DIR<br />
cd ../tools<br />
./install_eka2_tools $TOOLCHAIN_DIR<br />
# adjust EKA2TOOLS variable to point to correct location<br />
sed -i "s,EKA2TOOLS=.*,EKA2TOOLS=$TOOLCHAIN_DIR/bin," \<br />
&nbsp;&nbsp;$WRAPPER_DIR/gnupoc-common.sh</code></p>
<li>Create a &#8220;gnupoc_env.sh&#8221; script to be used for gnupoc environment setup, by running this command:</li>
<p><code>cat &gt; $GNUPOC_ROOT/gnupoc_env.sh &lt;&lt; EOF<br />
export PATH=$WRAPPER_DIR:\$PATH<br />
export EPOCROOT=$S60_SDK_DIR/ # trailing "/" is required!<br />
EOF<br />
</code><br />
(Note: the &#8220;cat &lt;&lt; EOF &#8230; EOF&#8221; snippet above will generate a &#8220;gnupoc_env.sh&#8221; file in $GNUPOC_ROOT.)</p>
<li>Initialize the S60 SDK environment (you will need to do this every time you close the current shell session):</li>
<p><code>. $GNUPOC_ROOT/gnupoc_env.sh</code></p>
<li>Install OpenC:</li>
<p><code>cd ../sdks<br />
chmod +x install_openc_16_s60<br />
./install_openc_16_s60 \<br />
&nbsp;&nbsp;$SRC_DIR/s60_open_c_cpp_plug_in_v1_6_en.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR</code></p>
<li>Install Qt for S60 (it will take some time because some tools need to be compiled for Linux):</li>
<p><code>chmod +x install_qt_s60<br />
./install_qt_s60 \<br />
&nbsp;&nbsp;$SRC_DIR/qt-symbian-opensource-4.6.0-snapshot-YYYYMMDD.exe \<br />
&nbsp;&nbsp;$S60_SDK_DIR \<br />
&nbsp;&nbsp;$QT_S60_DIR</code></p>
<p>If installation went well, you should see the following:<br />
<code><!-- NOTCODE -->...<br />
Qt is now configured for building. To start the build run:make debug-winscw|debug-armv5|release-armv5.<br />
To reconfigure, run 'make confclean' and configure.</code></p>
<p>Of course, you do not want to build Qt, so just ignore it and proceed with the next step.</p>
<li>Create a &#8220;qt_s60_env.sh&#8221; script to be used for Qt/S60 environment setup, by running this command:</li>
<p><code>cat &gt; $GNUPOC_ROOT/qt_s60_env.sh &lt;&lt; EOF<br />
export PATH=$QT_S60_DIR/bin:\$PATH<br />
export QMAKESPEC=symbian-abld<br />
EOF<br />
</code><br />
(Note: the &#8220;cat &lt;&lt; EOF &#8230; EOF&#8221; snippet above will generate a &#8220;qt_s60_env.sh&#8221; file in $GNUPOC_ROOT.)</p>
<li>Initialize the Qt for S60 environment (you will need to do this every time you close the current shell session):</li>
<p><code>. $GNUPOC_ROOT/qt_s60_env.sh</code></p>
<li>Install the following SIS files on your device:</li>
<ul>
<li>$EPOCROOT/nokia_plugin/openc/s60opencsis/pips_s60_1_6_ss.sis</li>
<li>$EPOCROOT/nokia_plugin/openc/s60opencsis/openc_ssl_s60_1_6_ss.sis</li>
<li>$EPOCROOT/nokia_plugin/opencpp/s60opencppsis/stdcpp_s60_1_6_ss.sis</li>
<li>$QT_S60_DIR/qt_for_s60_selfsigned.sis</li>
</ul>
<li>Unset all temporary variables we used earlier:</li>
<p><code>unset GNUPOC_ROOT TOOLCHAIN_DIR S60_SDK_DIR \<br />
&nbsp;&nbsp;QT_S60_DIR WRAPPER_DIR SRC_DIR</code></p>
</ol>
<h1>Usage</h1>
<p>You need to setup the environment, so tools like qmake, bldmake, abld, makesis etc. are found (not necessary if you just did the installation, unless you closed the shell session):</p>
<p><code><!-- NOTCODE -->. /path/to/gnupoc_env.sh<br />
. /path/to/qt_s60_env.sh</code></p>
<p>Note the &#8220;.&#8221; (dot) before the gnupoc_env.sh. It says that the contents of the gnupoc_env.sh file will be run in the current shell session, as if you typed them by hand.</p>
<p>To actually build some Qt code, use these commands:</p>
<p><code><!-- NOTCODE -->cd path/to/source<br />
qmake # assuming the code already has a .pro file<br />
make debug-gcce # or make debug-armv5 (if using RVCT)<br />
make sis # to generate .sis file<br />
</code></p>
<p>And to clean the source:</p>
<p><code><!-- NOTCODE -->make distclean</code></p>
<p>Notes:</p>
<ul>
<li>Be sure to use qmake from Qt/S60. Otherwise the generated Makefiles will be for your host system</li>
<li>The trailing slash on the EPOCROOT variable is important (this is assumed in many places on Symbian SDK scripts)</li>
</ul>
<h1>Known Issues</h1>
<ul>
<li>The snapshots contain only the the &#8220;debug&#8221; libraries. Therefore, only the debug targets will work, i.e. use only &#8220;make debug-gcce&#8221; (if using GCCE compiler) or &#8220;make debug-armv5&#8243; (if using RVCT)</li>
</ul>
<p>See also the more general <a href="http://labs.trolltech.com/page/QtforS60KnownIssues">known issues related to Qt for S60</a>.</p>
<h1>Ideas for improvements</h1>
<p>Some ideas:</p>
<ul>
<li>Create a nice GUI installer for Linux</li>
<li>Allow to easily upgrade Qt for S60 SDK installation, without requiring to reinstall the entire Symbian SDK</li>
<li>Itegration with Qt Creator, KDevelop or some other IDE</li>
</ul>
<p>Feel free to contribute with your ideas or even better, help implementing them <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=138&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Compiling Qt for S60 (from GIT) on Linux</title>
		<link>http://lizardo.wordpress.com/2009/09/05/compiling-qt-for-s60-from-git-on-linux/</link>
		<comments>http://lizardo.wordpress.com/2009/09/05/compiling-qt-for-s60-from-git-on-linux/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 06:11:07 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[S60]]></category>
		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=77</guid>
		<description><![CDATA[Update (2009-09-06): Add instructions for generating the .sis file
Update (2009-09-16): Rebase GIT clone against 4.6 branch; update gnupoc patch (V3); add instructions for patch_capabilities.pl
Update (2009-09-17): A few textual fixes; fixes added to the GIT tree; new gnupoc patch (V4); added instructions for testing the built Qt
Update (2009-09-18): fix GIT instructions
Update (2009-09-21): Use RVCT 2.2 (build [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=77&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><b>Update (2009-09-06):</b> Add instructions for generating the .sis file<br />
<b>Update (2009-09-16):</b> Rebase GIT clone against 4.6 branch; update gnupoc patch (V3); add instructions for patch_capabilities.pl<br />
<b>Update (2009-09-17):</b> A few textual fixes; fixes added to the GIT tree; new gnupoc patch (V4); added instructions for testing the built Qt<br />
<b>Update (2009-09-18):</b> fix GIT instructions<br />
<b>Update (2009-09-21):</b> Use RVCT 2.2 (build 686); small changes to the hello example</p>
<p>Currently it is only possible to build Qt for S60 on Windows and using the proprietary <a href="http://www.arm.com/products/DevTools/RVCT.html">RVCT compiler</a> from ARM.</p>
<p>Windows is needed because the Symbian support code contains calls to the Win32 API, Windows style paths (using backslashes), a few calls to .bat and .exe tools, and inconsistent case for path names (a real issue for Unix based systems).</p>
<p>RVCT is needed due to limitations in GCCE (the GCC Symbian port). From the Qt/S60 README:</p>
<blockquote><p>The current version of GCCE cannot compile the Qt libraries themselves as it has issues with global static data in DLLs. [...]. For more information on this issue see: http://www3.symbian.com/faq.nsf/0/B8542F039C193CCC802573DA0011DFA7</p></blockquote>
<p>Thanks to the community effort around the <a href="http://gnupoc.sourceforge.net/">gnupoc</a> project (and further modifications made by <a href="http://www.martin.st/symbian/">Martin Storsjö</a> for supporting the newer S60 SDK releases) we are able to build regular S60 applications on Linux. To allow also building Qt applications for S60, it was necessary to port the Symbian support from Qt sources to Linux, and a few more changes to the Symbian SDK scripts to improve Linux support.</p>
<p>You will find below instructions for building Qt for S60 on Linux, using <a href="http://qt.gitorious.org/qt/">sources from GIT</a>, plus the Linux host support from my <a href="http://qt.gitorious.org/~lizardo/qt/lizardos-qts60">own clone</a>.</p>
<p>The RVCT requirement is still necessary, but fortunately there is a Linux version of RVCT available on ARM site (it is paid, but there is a 30-day evaluation version).</p>
<h1>Preparation</h1>
<p>Although <a href="http://lizardo.wordpress.com/2009/07/29/running-qt-for-s60-sdk-on-linux/">I had previously blogged</a> about installing the S60 SDK on Linux together with the Qt 4.5.2 &#8220;tower&#8221; release, I will again describe the installation instructions here. <b>Even if you have the S60 SDK already installed, you will need to install it again</b>. This is necessary because gnupoc needs more fixes for building Qt.</p>
<p>That said, download the necessary files:</p>
<ul>
<li><a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/S60_Platform_SDKs/">S60_5th_Edition_SDK_v1_0_en.zip</a> (623MB): S60 Platform SDK for Symbian OS, for C++ (5th Edition)</li>
<li><a href="http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Open_C_and_C++/">s60_open_c_cpp_plug_in_v1_6_en.zip</a> (35MB): Open C/C++ Plugin</li>
<li><a href="http://www.codesourcery.com/sgpp/lite/arm/releases/2005Q1C">gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2</a> (11MB): CodeSourcery’s ARM toolchain for Symbian</li>
<li><a href="http://www.martin.st/symbian/gnupoc-package-1.13.tar.gz">gnupoc-package-1.13.tar.gz</a> (6.2MB): scripts and patches to run S60 SDK on Linux</li>
<li><a href="http://franciscoalecrim.com/lizardo/qt_s60_gnupoc_v4.patch">qt_s60_gnupoc_v4.patch</a> (40KB): gnupoc fixes/extensions for supporting Qt for S60 builds (4th version of the patch)</li>
</ul>
<p>For building the native tools from gnupoc, you will need:</p>
<ul>
<li>the GCC C/C++ compilers</li>
<li>development files for zlib</li>
<li>development files for openssl</li>
</ul>
<p>On Ubuntu, you can install these using the following command:<br />
<code>sudo apt-get install build-essential zlib1g-dev libssl-dev</code></p>
<p>For building Qt itself, you will also need:</p>
<ul>
<li>RVCT 2.2 (build 686) for Linux installed and accessible on PATH. Run <b>armcc &#45;&#45;vsn</b> and you should see:</li>
<p><code>ARM/Thumb C/C++ Compiler, RVCT2.2 [Build 686]</code></p>
<li><a href="http://www.winehq.org/">WINE</a>. A few tools from S60 SDK (elftran, genstubs and getexports) are only available for Windows. Fortunately, recent versions of WINE are able to run these tools just fine.</li>
<li>A copy of Qt GIT tree containing support for Linux host from my tree clone. If you do not have Qt GIT tree downloaded, you get it by running:</li>
<p><code>git clone git://gitorious.org/qt/qt.git</code><br />
Next, add a remote for my clone and create a local &#8220;s60_linux&#8221; branch that will be used to track changes for Linux host support:<br />
<code>git remote add -f -t s60_linux \<br />
&nbsp;&nbsp;qt_s60_linux git://gitorious.org/~lizardo/qt/lizardos-qts60.git<br />
git checkout -b s60_linux qt_s60_linux/s60_linux</code></p>
<p>If at some point you need to update the tree (and don&#8217;t have any local changes), you can run:<br />
<code>git checkout s60_linux<br />
git fetch qt_s60_linux<br />
git reset --hard qt_s60_linux/s60_linux</code>
</ul>
<h1>S60 SDK Installation (5.0 only)</h1>
<ol>
<li>First, set some environment variables to be used on the following steps (feel free to modify them to install the SDK on some other location). <b>NOTE: these variables are not necessary after installation.</b></li>
<p><code># root directory where all SDK files will be installed<br />
GNUPOC_ROOT=$HOME/gnupoc<br />
&nbsp;<br />
# toolchain directory<br />
TOOLCHAIN_DIR=$GNUPOC_ROOT/csl_gcc<br />
&nbsp;<br />
# S60 SDK directory<br />
S60_SDK_DIR=$GNUPOC_ROOT/symbian-sdks/5.0<br />
&nbsp;<br />
# wrapper directory (used by gnupoc)<br />
WRAPPER_DIR=$GNUPOC_ROOT/bin<br />
&nbsp;<br />
# where all downloaded files are located<br />
SRC_DIR=$HOME/downloads<br />
</code></p>
<li>Install ARM toolchain:</li>
<p><code>mkdir -p $TOOLCHAIN_DIR<br />
tar -C $TOOLCHAIN_DIR -xvjf \<br />
&nbsp;&nbsp;$SRC_DIR/gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2<br />
</code></p>
<li>Unpack gnupoc sources and apply the patch that adds Qt for S60 support:</li>
<p><code>tar -xvzf $SRC_DIR/gnupoc-package-1.13.tar.gz<br />
cd gnupoc-package-1.13<br />
patch -p1 -i $SRC_DIR/qt_s60_gnupoc_v4.patch<br />
</code></p>
<li>Install gnupoc:</li>
<p><code>cd sdks<br />
./install_gnupoc_s60_50 \<br />
&nbsp;&nbsp;$SRC_DIR/S60_5th_Edition_SDK_v1_0_en.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR<br />
</code></p>
<li>Install gnupoc wrappers and native tools:</li>
<p><code>./install_wrapper $WRAPPER_DIR<br />
cd ../tools<br />
./install_eka2_tools $TOOLCHAIN_DIR<br />
sed -i "s,EKA2TOOLS=.*,EKA2TOOLS=$TOOLCHAIN_DIR/bin," \<br />
&nbsp;&nbsp;$WRAPPER_DIR/gnupoc-common.sh<br />
</code></p>
<li>Install OpenC (now necessary even for 5.0 SDK):</li>
<p><code>cd ../sdks<br />
chmod +x install_openc_16_s60<br />
./install_openc_16_s60 \<br />
&nbsp;&nbsp;$SRC_DIR/s60_open_c_cpp_plug_in_v1_6_en.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR<br />
</code></p>
<li>Add support for RVCT to the SDK:</li>
<p><code>chmod +x install_rvct_support<br />
./install_rvct_support $S60_SDK_DIR<br />
</code></p>
<li>Create a &#8220;gnupoc_env.sh&#8221; script to be used for gnupoc environment setup, by running this command:</li>
<p><code>cd $GNUPOC_ROOT<br />
cat &gt; gnupoc_env.sh &lt;&lt; EOF<br />
export PATH=$WRAPPER_DIR:\$PATH<br />
export EPOCROOT=$S60_SDK_DIR/ # trailing &quot;/&quot; is required!<br />
EOF<br />
</code><br />
(Note: the &#8220;cat &lt;&lt; EOF &#8230; EOF&#8221; snippet above will generate a &#8220;gnupoc_env.sh&#8221; file in $GNUPOC_ROOT.)</p>
<li>Unset all temporary variables we used earlier:</li>
<p><code>unset TOOLCHAIN_DIR S60_SDK_DIR WRAPPER_DIR SRC_DIR</code><br />
(Note: GNUPOC_ROOT is not unset because it will be used later on when creating the environment script for Qt.)</p>
<li>Finally, initialize environment by running:</li>
<p><code>. gnupoc_env.sh</code><br />
(Note the &#8220;.&#8221; (dot) before gnupoc_env.sh. This command will run the commands listed in gnupoc_env.sh on the current shell session, as if you typed them by hand.)</p>
</ol>
<h1>Building Qt for S60</h1>
<p>The current configure shell script used for Linux builds does not contain a full support for Symbian. Therefore the configure.exe source was ported to Linux. Here it is called &#8220;configure.bin&#8221;, and is generated by the autogen.sh script.</p>
<ol>
<li>Compile configure.bin:</li>
<p><code>./autogen.sh</code></p>
<li>Configure Qt sources:</li>
<p><code>./configure.bin \<br />
&nbsp;&nbsp;-opensource \<br />
&nbsp;&nbsp;-confirm-license \<br />
&nbsp;&nbsp;-platform linux-g++ \<br />
&nbsp;&nbsp;-xplatform symbian-abld \<br />
&nbsp;&nbsp;-no-webkit \<br />
&nbsp;&nbsp;-no-phonon<br />
</code></p>
<li>Compile Qt:</li>
<p><code>make release-armv5</code></p>
<li>Create a &#8220;qt_s60_env.sh&#8221; script to be used for Qt/S60 environment setup, by running this command:</li>
<p><code>cat &gt; $GNUPOC_ROOT/qt_s60_env.sh &lt;&lt; EOF<br />
export PATH=$PWD/bin:\$PATH<br />
export QMAKESPEC=symbian-abld<br />
EOF<br />
</code><br />
(Note: the &#8220;cat &lt;&lt; EOF &#8230; EOF&#8221; snippet above will generate a &#8220;qt_s60_env.sh&#8221; file in $GNUPOC_ROOT.)</p>
<li>Finally, initialize environment by running:</li>
<p><code>. $GNUPOC_ROOT/qt_s60_env.sh</code><br />
(Note the &#8220;.&#8221; (dot) before qt_s60_env.sh. This command will run the commands listed in qt_s60_env.sh on the current shell session, as if you typed them by hand.)</p>
</ol>
<h1>Reducing Symbian capabilities for Qt</h1>
<p>By default, Qt for S60 requires high <a href="http://developer.symbian.com/wiki/display/pub/Symbian+Signed+FAQ#SymbianSignedFAQ-WhatareCapabilities%3F">Symbian capabilities</a>. It does not use all those capabilities itself, but this is done so that the generated SIS does not limit capabilities for Qt applications that need them. Unless you have access to certificates that can sign with high capabilities, you will need to &#8220;patch&#8221; the generated binaries so that it only requests the set of capabilities accessible through <a href="https://www.symbiansigned.com/app/page/public/openSignedOnline.do">Open Signed Online</a> or by using self-signed certificates.</p>
<p>Fortunately, there is a script under Qt sources called &#8220;patch_capabilities.pl&#8221; that does just that. I also modified it so that it &#8220;patches&#8221; the Secure ID and UID3 to match the range used for development purposes (see <a href="http://developer.symbian.com/wiki/display/pub/UID+Guide">this page</a> for more details about Symbian UIDs). To be able to self-sign the generated .sis for Qt, run this command:</p>
<p><code>perl ./bin/patch_capabilities.pl \<br />
&nbsp;&nbsp;src/s60installs/Qt_for_S60_template.pkg \<br />
&nbsp;&nbsp;release-armv5</code></p>
<p>Note this must be done AFTER building Qt, because it modifies some files generated by the build.</p>
<h1>Creating the SIS file</h1>
<p>To create the final .sis file for Qt, run this command:</p>
<p><code>make -C src/s60installs/ sis</code></p>
<p>You should see output similar to:</p>
<p><code>Processing qt_for_s60_release-armv5.pkg...<br />
Created qt_for_s60_release-armv5_unsigned.sis<br />
&nbsp;<br />
Successfully created qt_for_s60_release-armv5.sis using certificate Self Signed!<br />
</code></p>
<p>You will find the generated qt_for_s60_release-armv5.sis under &#8220;src/s60installs/&#8221;.</p>
<h1>Testing the built Qt: hello world!</h1>
<p>The Qt source has many examples and demos, but a simple &#8220;hello world&#8221; is very suitable for checking whether Qt was built correctly and if the environment is properly setup.</p>
<p>First, set the environment for gnupoc and Qt/S60, unless you already run these commands on the current terminal session:</p>
<p><code>. $GNUPOC_ROOT/gnupoc_env.sh<br />
. $GNUPOC_ROOT/qt_s60_env.sh</code></p>
<p>Next, create a directory that will contain the hello project:</p>
<p><code>mkdir hello<br />
cd hello</code></p>
<p>Now create a &#8220;main.cpp&#8221; file with the following code:</p>
<p><code>#include &lt;QtGui&gt;<br />
&nbsp;<br />
int main(int argc, char *argv[])<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;QApplication app(argc, argv);<br />
&nbsp;&nbsp;&nbsp;&nbsp;QPushButton hello("Hello, World!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;QObject::connect(&amp;hello, SIGNAL(clicked()),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;app, SLOT(quit()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;hello.show();<br />
&nbsp;&nbsp;&nbsp;&nbsp;return app.exec();<br />
}</code></p>
<p>Create the .pro file by running:</p>
<p><code>qmake -project</code></p>
<p>Now create the Makefile (and a couple of S60 specific files):</p>
<p><code>qmake</code></p>
<p>Finally, build the project and generate a (self-signed) SIS file for it:</p>
<p><code>make release-gcce # or release-armv5, if using RVCT<br />
make sis</code></p>
<p>The SIS file will be created on the current directory with the name &#8220;&lt;project&gt;_release-&lt;platform&gt;.sis&#8221;, where &lt;project&gt; is the project name and &lt;platform&gt; is the S60 platform (either gcce or armv5).</p>
<h1>TODO</h1>
<ul>
<li>Test the compiled Qt on the device</li>
</ul>
</ol>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=77&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/09/05/compiling-qt-for-s60-from-git-on-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>PySide released!</title>
		<link>http://lizardo.wordpress.com/2009/08/18/pyside-released/</link>
		<comments>http://lizardo.wordpress.com/2009/08/18/pyside-released/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 16:05:46 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[pyside]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=70</guid>
		<description><![CDATA[From the original announcement:

PySide is a project providing an LGPL&#8217;d set of Python bindings for the Qt framework.
PySide already provides a full set of Qt bindings as well as automated binding generation tools. Since the whole toolset has been made available, the team expects PySide to be valuable not only to Qt software developers, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=70&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>From the <a href="http://lists.maemo.org/pipermail/maemo-developers/2009-August/020190.html">original announcement</a>:</p>
<blockquote><p>
PySide is a project providing an LGPL&#8217;d set of Python bindings for the Qt framework.</p>
<p>PySide already provides a full set of Qt bindings as well as automated binding generation tools. Since the whole toolset has been made available, the team expects PySide to be valuable not only to Qt software developers, but to people willing to create Python bindings to any Qt-based library, or to any C++ library in general. Although based on a different technical approach, PySide will initially be API-compatible with existing Python bindings for Qt.</p>
<p>PySide is still a work in progress, and some work is still required to stabilize the codebase. This being said, the team believes it is already in a usable state, especially if an occasional rough edge and unpainted surface can be tolerated. Due to practical reasons, the initial development efforts have been focused on Linux, but the team hopes people to join in porting the code to other platforms and to further develop the bindings and tools.
</p></blockquote>
<p>So if you are interested in creating Python bindings for Qt based C++ code or (soon) other generic C++ code, feel free to try out PySide tools and contribute to its development <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=70&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/08/18/pyside-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Running Qt for S60 SDK on Linux</title>
		<link>http://lizardo.wordpress.com/2009/07/29/running-qt-for-s60-sdk-on-linux/</link>
		<comments>http://lizardo.wordpress.com/2009/07/29/running-qt-for-s60-sdk-on-linux/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:49:18 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[S60]]></category>
		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=34</guid>
		<description><![CDATA[Update (2009-08-04): fixed qt_s60_gnupoc.patch (thanks grego), plus a few text additions.
Update (2009-08-21): update instructions to support S60 5.0 too.
A while ago I started playing with S60 programming. After downloading rather big SDK files and following instructions from http://www.martin.st/symbian/, I was able to build simple &#8220;hello world&#8221; applications written in C++, on Linux.
Then I remembered reading [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=34&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><b>Update (2009-08-04):</b> fixed qt_s60_gnupoc.patch (thanks grego), plus a few text additions.<br />
<b>Update (2009-08-21):</b> update instructions to support S60 5.0 too.</p>
<p>A while ago I started playing with S60 programming. After downloading rather big SDK files and following instructions from <a href="http://www.martin.st/symbian/">http://www.martin.st/symbian/</a>, I was able to build simple &#8220;hello world&#8221; applications written in C++, on Linux.</p>
<p>Then I remembered reading about an experimental <a href="http://pepper.troll.no/s60prereleases/">Qt port to S60</a>. I wanted to try it, given that I also began playing with Qt a while ago. To my surprise, I could not find any actual instructions on how to do that on Linux, although I found a few requests for it in comments from Qt Labs blog posts.</p>
<p>So, without further delay, I describe below the steps I followed to build Qt applications for S60 devices on Linux. These instructions are provided as an extension to those on <a href="http://www.martin.st/symbian/">Martin&#8217;s page</a>, so be sure to read it too. But given that some patches are needed on top of Martin&#8217;s tools, I will show the full instructions here.</p>
<p>Note: these instructions were tested only in the following environment:</p>
<ul>
<li>x86 32-bits</li>
<li>Ubuntu 8.04</li>
<li>S60 3.1 (N95) and S60 5.0 (5800 Xpress Music)</li>
</ul>
<p>I tried making it work for my 3.0 MR based device, but it seems that I need to recompile all Qt using the proprietary ARM RVCT compiler. If someday I make it work, I&#8217;ll post instructions for it too.</p>
<h1>Preparation</h1>
<p>	Download all required files:</p>
<ul>
<li><a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/S60_Platform_SDKs/">S60-SDK-200634-3.1-Cpp-f.1090b.zip (355MB) or S60_5th_Edition_SDK_v1_0_en.zip (623MB)</a>: S60 Platform SDK for Symbian OS, for C++</li>
<li><a href="http://pepper.troll.no/s60prereleases/patches/OpenC-1.5.5b-beta.zip">OpenC-1.5.5b-beta.zip</a> (29MB): Open C/C++ Plug-ins for S60 3rd Edition (<b>already present on S60 5.0 SDK, only needed for 3.1</b>)</li>
<li><a href="http://pepper.troll.no/s60prereleases/packages/qt-embedded-s60-preview-4.5.2-tower.exe">qt-embedded-s60-preview-4.5.2-tower.exe</a> (127MB): Qt for S60 &#8220;Tower&#8221; pre-release</li>
<li><a href="http://www.codesourcery.com/sgpp/lite/arm/releases/2005Q1C">gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2</a> (11MB): CodeSourcery&#8217;s ARM toolchain for Symbian</li>
<li><a href="http://www.martin.st/symbian/gnupoc-package-1.13.tar.gz">gnupoc-package-1.13.tar.gz</a> (6.2MB): scripts and patches to run S60 SDK on Linux</li>
<li><a href="http://franciscoalecrim.com/lizardo/qt_s60_gnupoc.patch">qt_s60_gnupoc.patch</a> (12KB): patch for gnupoc to also support Qt S60 installation</li>
<li><a href="http://franciscoalecrim.com/lizardo/qt-s60-extra-files.tar.gz">qt-s60-extra-files.tar.gz</a> (80KB): files from Qt S60 GIT tree that are missing for a Linux build (needed to compile Qt tools natively for Linux)</li>
</ul>
<p>(many thanks to <a href="http://franciscoalecrim.com/">Francisco Keppler</a> for hosting the last two files on his web site!)</p>
<h1>Installation</h1>
<ol>
<li>First, set some environment variables to be used on the following steps (feel free to modify them to install the SDK on some other location). <b>NOTE: these variables are not necessary after installation.</b></li>
<p>	<code># root directory where all SDK files will be installed<br />
GNUPOC_ROOT=$HOME/gnupoc<br />
&nbsp;<br />
# toolchain directory<br />
TOOLCHAIN_DIR=$GNUPOC_ROOT/csl_gcc<br />
&nbsp;<br />
# S60 SDK directory (replace "3.1" with "5.0"<br />
# for S60 5.0)<br />
S60_SDK_DIR=$GNUPOC_ROOT/symbian-sdks/3.1<br />
&nbsp;<br />
# Qt SDK directory<br />
QT_S60_DIR=$GNUPOC_ROOT/qt_s60<br />
&nbsp;<br />
# wrapper directory (used by gnupoc)<br />
WRAPPER_DIR=$GNUPOC_ROOT/bin<br />
&nbsp;<br />
# where all downloaded files are located<br />
SRC_DIR=$HOME/downloads<br />
</code></p>
<li>Install ARM toolchain:</li>
<p>	<code>mkdir -p $TOOLCHAIN_DIR<br />
tar -C $TOOLCHAIN_DIR -xvjf \<br />
&nbsp;&nbsp;$SRC_DIR/gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2</code></p>
<li>Unpack gnupoc sources and apply the patch that adds Qt/S60 support:</li>
<p>	<code>tar -xvzf $SRC_DIR/gnupoc-package-1.13.tar.gz<br />
cd gnupoc-package-1.13<br />
patch -p1 -i $SRC_DIR/qt_s60_gnupoc.patch</code></p>
<li>Install gnupoc:</li>
<ul>
<li>For S60 3.1:</li>
<p>		<code>cd sdks<br />
./install_gnupoc_s60_31 \<br />
&nbsp;&nbsp;$SRC_DIR/S60-SDK-200634-3.1-Cpp-f.1090b.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR</code></p>
<li>For S60 5.0:</li>
<p>		<code>cd sdks<br />
./install_gnupoc_s60_50 \<br />
&nbsp;&nbsp;$SRC_DIR/S60_5th_Edition_SDK_v1_0_en.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR</code>
	</ul>
<li>Install gnupoc wrappers and native tools:</li>
<p>	<code>./install_wrapper $WRAPPER_DIR<br />
cd ../tools<br />
./install_eka2_tools $TOOLCHAIN_DIR<br />
# adjust EKA2TOOLS variable to point to correct location<br />
sed -i "s,EKA2TOOLS=.*,EKA2TOOLS=$TOOLCHAIN_DIR/bin," \<br />
&nbsp;&nbsp;$WRAPPER_DIR/gnupoc-common.sh</code></p>
<li>Install OpenC (skip this step if using S60 5.0):</li>
<p>	<code>cd ../sdks<br />
chmod +x install_openc.sh<br />
./install_openc.sh \<br />
&nbsp;&nbsp;$SRC_DIR/OpenC-1.5.5b-beta.zip \<br />
&nbsp;&nbsp;$S60_SDK_DIR</code></p>
<li>Finally, install Qt/S60 (it will take some time because some tools need to be compiled for Linux):</li>
<p>	<code>chmod +x install_qt_s60.sh<br />
./install_qt_s60.sh \<br />
&nbsp;&nbsp;$SRC_DIR/qt-embedded-s60-preview-4.5.2-tower.exe \<br />
&nbsp;&nbsp;$S60_SDK_DIR \<br />
&nbsp;&nbsp;$QT_S60_DIR \<br />
&nbsp;&nbsp;$SRC_DIR/qt-s60-extra-files.tar.gz</code>
</ol>
<h1>Usage</h1>
<p>After installation is completed, the usage is very simple. You need to setup a few environment variables, so tools like qmake, bldmake, abld, makesis etc. are found:</p>
<p><code>export PATH=$WRAPPER_DIR:$QT_S60_DIR/bin:$PATH<br />
export EPOCROOT=$S60_SDK_DIR/ # trailing "/" is required!<br />
export QMAKESPEC=$QT_S60_DIR/mkspecs/symbian-abld</code></p>
<p>Optionally, you can create a gnupoc_env.sh file with the lines above, using this command:</li>
<p>	<code>cat &gt; $GNUPOC_ROOT/gnupoc_env.sh &lt;&lt; EOF<br />
export PATH=$WRAPPER_DIR:$QT_S60_DIR/bin:\$PATH<br />
export EPOCROOT=$S60_SDK_DIR/ # trailing &quot;/&quot; is required!<br />
export QMAKESPEC=$QT_S60_DIR/mkspecs/symbian-abld<br />
EOF</code></p>
<p>Then, every time you need to set the variables, you could simply use:</p>
<p><code>. $GNUPOC_ROOT/gnupoc_env.sh</code></p>
<p>Note the &#8220;.&#8221; (dot) before the gnupoc_env.sh. It says that the contents of the gnupoc_env.sh file will be run in the current shell session, as if you typed them by hand.</p>
<p>To actually build some Qt code, use these commands:</p>
<p><code>cd path/to/source<br />
qmake # assuming the code already has a .pro file<br />
make DEL_FILE=rm ABLD=abld release-gcce<br />
makesis -c &lt;project&gt;_gcce_urel.pkg &lt;project&gt;.sis<br />
</code></p>
<p>And to clean the source:</p>
<p><code>make DEL_FILE=rm ABLD=abld distclean</code></p>
<p>Notes:</p>
<ul>
<li>Be sure to use qmake from Qt/S60. Otherwise the generated Makefiles will be for your host system</li>
<li>The trailing slash on the EPOCROOT variable is important</li>
</ul>
<h1>Known issue and workaround</h1>
<p>The .sis file generated by the instructions above, although installable on the device, does not actually work (clicking on the application icon makes the phone &#8220;hang&#8221; for a while, but then it returns to the Symbian menu). The workaround is to compile and link some files from Qt/S60 sources directly into the application. For that, just add a &#8220;qts60main.pri&#8221; file to your application&#8217;s source directory, with the following content:</p>
<p><code>QT_SOURCE_TREE = $$QMAKE_INCDIR_QT/..<br />
DEPENDPATH += $$QT_SOURCE_TREE/src/s60main<br />
&nbsp;<br />
HEADERS += \<br />
        qts60mainapplication.h \<br />
        qts60mainappui.h \<br />
        qts60maindocument.h<br />
&nbsp;<br />
SOURCES += \<br />
        qts60mainapplication.cpp \<br />
        qts60mainappui.cpp \<br />
        qts60main.cpp \<br />
        qts60maindocument.cpp \<br />
        qts60main_mcrt0.cpp<br />
&nbsp;<br />
LIBS -= qtmain<br />
QMAKE_LIBS -= qtmain<br />
&nbsp;<br />
MMP_RULES += \<br />
        "SOURCEPATH $$QT_SOURCE_TREE/src/s60main" \<br />
        "START RESOURCE s60main.rss" \<br />
        "HEADER" \<br />
        "TARGETPATH /resource/apps" \<br />
        "END"<br />
</code></p>
<p>Edit the .pro file and add this line:</p>
<p><code>include(qts60main.pri)</code></p>
<p>Then try again the sequence of commands listed on the previous section (qmake; bldmake &#8230;). I&#8217;m not sure why this happens, and I need to check whether this is an issue specific to Linux.</p>
<h1>TODO</h1>
<ul>
<li>Remove need to set &#8220;DEL_FILE=rm ABLD=abld&#8221; when calling make distclean/relase-*</li>
<li>Send patches to Martin&#8217;s gnupoc and Qt/S60</li>
<li>Investigate issue with s60main static library not working</li>
<li>Compile Qt/S60 from sources on Linux</li>
<li>Make it work with S60 3.0 too (although Qt/S60 does not support it officially)</li>
<li>Make Symbian emulator (epoc.exe) work under Linux (currently it crashes under WINE)</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=34&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/07/29/running-qt-for-s60-sdk-on-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Making icecream monitor (icemon) work on Jaunty</title>
		<link>http://lizardo.wordpress.com/2009/05/21/making-icecream-monitor-icemon-work-on-jaunty/</link>
		<comments>http://lizardo.wordpress.com/2009/05/21/making-icecream-monitor-icemon-work-on-jaunty/#comments</comments>
		<pubDate>Thu, 21 May 2009 14:17:10 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Hints]]></category>
		<category><![CDATA[icecc]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=26</guid>
		<description><![CDATA[While I have been using Ubuntu 8.04 LTS (hardy) in my work laptop (for the very same reasons I used dapper for a long time), I knew that some Ubuntu 9.04 (jaunty) users were having problems with icemon (the icecream monitor) not working, i.e., not showing any nodes. I did not investigate the reasons behind [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=26&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While I have been using Ubuntu 8.04 LTS (hardy) in my work laptop (for the very same reasons I used dapper for a long time), I knew that some Ubuntu 9.04 (jaunty) users were having problems with icemon (the <a href="http://en.opensuse.org/Icecream">icecream</a> monitor) not working, i.e., not showing any nodes. I did not investigate the reasons behind this, but a colleague reported that he could successfully make it work by using the older version from intrepid.</p>
<p>So here goes a small how-to on installing the older icecc-monitor version (from intrepid) in jaunty:</p>
<ol>
<li>Download the icecc-monitor .deb package from <a href="http://packages.ubuntu.com/intrepid/i386/icecc-monitor/download">http://packages.ubuntu.com/intrepid/i386/icecc-monitor/download</a></li>
<li>Install the package with:</li>
<p><code>$ sudo dpkg -i icecc-monitor_*.deb</code></p>
<li>The step above will successfully install the package, but in a future whole-system upgrade, it will again install the newer (buggy) version. To avoid that, you can tell dpkg to lock the package version, using the following command:</li>
<p><code>$ echo icecc-monitor hold | sudo dpkg --set-selections</code>
<p>If necessary, you can unlock it anytime using the command:</p>
<p><code>$ echo icecc-monitor install | sudo dpkg --set-selections</code>
</ol>
<p>I did not check yet whether this has already been reported to the <a href="http://launchpad.net">Launchpad</a>, if anyone knows, feel free to comment.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=26&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/05/21/making-icecream-monitor-icemon-work-on-jaunty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;undefined reference to `vtable for &#8230;&#8217; errors&#8221; in Qt derived classes</title>
		<link>http://lizardo.wordpress.com/2009/04/24/undefined-reference-to-vtable-for-errors-in-qt-derived-classes/</link>
		<comments>http://lizardo.wordpress.com/2009/04/24/undefined-reference-to-vtable-for-errors-in-qt-derived-classes/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 15:15:28 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Hints]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=20</guid>
		<description><![CDATA[If you ever come across an error like this when compiling C++ code with Qt derived class definitions:

g++ -Wl,--no-undefined -o test test.o    -L/usr/lib -lQtGui -lQtCore -lpthread
test.o: In function `main':
test.cpp:(.text+0x2c): undefined reference to `vtable for MyClass'
collect2: ld returned 1 exit status
make: *** [test] Error 1

It is probably because either you defined a class [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=20&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you ever come across an error like this when compiling C++ code with Qt derived class definitions:</p>
<p><code><br />
g++ -Wl,--no-undefined -o test test.o    -L/usr/lib -lQtGui -lQtCore -lpthread<br />
test.o: In function `main':<br />
test.cpp:(.text+0x2c): undefined reference to `vtable for MyClass'<br />
collect2: ld returned 1 exit status<br />
make: *** [test] Error 1<br />
</code></p>
<p>It is probably because either you defined a class in a .cpp file or you forgot to add some header file to the HEADERS variable in the .pro file.</p>
<p>This happens because moc (Qt&#8217;s meta-object compiler) only runs on header files by default (and only on those listed in the HEADERS variable), therefore it did not generate the necessary MOC code for that class.</p>
<p>The fix is to simply move the class definition to a header, and make sure it is added to the HEADERS variable in the qmake project file.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=20&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2009/04/24/undefined-reference-to-vtable-for-errors-in-qt-derived-classes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up libc6 sources for analysis on Debian/Ubuntu</title>
		<link>http://lizardo.wordpress.com/2008/05/31/setting-up-libc6-sources-for-analysis-on-debianubuntu/</link>
		<comments>http://lizardo.wordpress.com/2008/05/31/setting-up-libc6-sources-for-analysis-on-debianubuntu/#comments</comments>
		<pubDate>Sat, 31 May 2008 14:42:40 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=19</guid>
		<description><![CDATA[I used to work on development of a tracing tool at work, that required me reading some glibc code to understand internals of core library functions (following the &#8220;Use the source, Luke&#8221; Open Source principle for developer documentation). I use Ubuntu, so it seemed simpler to use its glibc sources so I don&#8217;t have to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=19&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I used to work on development of a tracing tool at work, that required me reading some glibc code to understand internals of core library functions (following the &#8220;Use the source, Luke&#8221; Open Source principle for developer documentation). I use Ubuntu, so it seemed simpler to use its glibc sources so I don&#8217;t have to recompile glibc myself. Here are the instructions I use for setting up my environment for glibc code navigation (tested on Hardy running on x86):</p>
<pre># gcc 4.2 is required to configure libc6
$ sudo apt-get install build-essential gcc-4.2

# download sources
$ sudo apt-get source libc6
$ cd glibc-2.6.1/

# the "configure_i686" rule also calls other rules that
# unpack the sources and apply distro-specific patches
$ ./debian/rules configure_i686

# create a tags file to easily navigate between functions with Vim
$ cd build-tree/glibc-2.6.1/ &amp;&amp; ctags -R --exclude=.pc
</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lizardo.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lizardo.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=19&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2008/05/31/setting-up-libc6-sources-for-analysis-on-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>My Boomerang TODO list</title>
		<link>http://lizardo.wordpress.com/2008/04/05/my-boomerang-todo-list/</link>
		<comments>http://lizardo.wordpress.com/2008/04/05/my-boomerang-todo-list/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 23:49:59 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=18</guid>
		<description><![CDATA[I have some items on my TODO list regarding Boomerang. Here they are:

migrate functional testsuite to DejaGNU (on progress)
increase test code coverage by writing new tests
update/fix/extend unit tests

Migration to dejagnu will allow to write more flexible functional tests, such as ones to test for error handling. Right now, Boomerang&#8217;s functional testsuite only covers the decompilation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=18&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have some items on my TODO list regarding Boomerang. Here they are:</p>
<ul>
<li>migrate functional testsuite to DejaGNU (on progress)</li>
<li>increase test code coverage by writing new tests</li>
<li>update/fix/extend unit tests</li>
</ul>
<p>Migration to dejagnu will allow to write more flexible functional tests, such as ones to test for error handling. Right now, Boomerang&#8217;s functional testsuite only covers the decompilation phase (as far as I can see), and only covers 48.1% of code (according to gcov/lcov). Next, I plan to increase this coverage percentage by writing new tests (and understanding the code a bit more on the way) and finally, once I start getting hands dirty on coding, I will fix/extend unit tests.</p>
<p>These are my short term plans. Long term plans are (not detailed yet): remove dependency on some (old, unmaintained) third-party tools, such as NJMC toolkit and old bison++/flex++ (this needs to be discussed on the mailing list); reuse code where possible, instead of reimplementing things like the PE/ELF/etc. parsers; make boomerang more modular, possibly allowing to compile it as a shared library (already possible?) or replacing some algorithms; take a look at DCC code (now GPL licensed); experiment with new concepts on the RE/Decompilation research field.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lizardo.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lizardo.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=18&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2008/04/05/my-boomerang-todo-list/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Wine, the Windows &#8220;emulator&#8221;</title>
		<link>http://lizardo.wordpress.com/2008/03/24/wine-the-windows-emulator/</link>
		<comments>http://lizardo.wordpress.com/2008/03/24/wine-the-windows-emulator/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 22:50:02 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=17</guid>
		<description><![CDATA[Just saw some good news about Wine approaching 1.0 stable release. It remembered me of how capable Wine is now. Some years ago, I would try running an application under Wine and hope it would at least show something and not crash. Nowadays, when I find some Windows application I need to use, I first [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=17&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just saw some good news about <a href="http://www.winehq.org/?issue=343#Approaching%20Wine%201.0">Wine approaching 1.0 stable release</a>. It remembered me of how capable Wine is now. Some years ago, I would try running an application under Wine and hope it would at least show something and not crash. Nowadays, when I find some Windows application I need to use, I first try running it under Wine and if it does not work as I like, I fall back to QEMU or VMWare. Hopefully, for most applications I have tried, Wine worked just fine.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lizardo.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lizardo.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=17&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2008/03/24/wine-the-windows-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
		<item>
		<title>Boomerang and gcov</title>
		<link>http://lizardo.wordpress.com/2008/03/12/boomerang-and-gcov/</link>
		<comments>http://lizardo.wordpress.com/2008/03/12/boomerang-and-gcov/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 01:59:25 +0000</pubDate>
		<dc:creator>lizardo</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>

		<guid isPermaLink="false">http://lizardo.wordpress.com/?p=16</guid>
		<description><![CDATA[Last night I tried enabling coverage in boomerang compilation. It seems it will not be as easy as I thought. Gcov is failing to find source files, although the .gcda and .gcno files are being generated and are on the correct location. Snippet from gcov error:
$ gcov c/ansi-c-parser.gcda -o c -b &#62;/dev/null
ansi-c.y:cannot open source file
/usr/local/lib/bison.cc:cannot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=16&subd=lizardo&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last night I tried enabling coverage in boomerang compilation. It seems it will not be as easy as I thought. Gcov is failing to find source files, although the .gcda and .gcno files are being generated and are on the correct location. Snippet from gcov error:</p>
<p><code>$ gcov c/ansi-c-parser.gcda -o c -b &gt;/dev/null<br />
ansi-c.y:cannot open source file<br />
/usr/local/lib/bison.cc:cannot open source file<br />
ansi-c-parser.cpp:cannot open source file<br />
</code></p>
<p>In this case the source file is in c/ansi-c-parser.cpp, but it insists on looking for it in the current directory. For this specific case, I figured out the errors are due to #line directives generated by bison++, but there are various errors like this. I&#8217;ll look into them at another time. Currently, I&#8217;m investigating unexpected errors reported by the functional testsuite (more on this later).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lizardo.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lizardo.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lizardo.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lizardo.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lizardo.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lizardo.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lizardo.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lizardo.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lizardo.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lizardo.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lizardo.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lizardo.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lizardo.wordpress.com&blog=166274&post=16&subd=lizardo&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lizardo.wordpress.com/2008/03/12/boomerang-and-gcov/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bad296baf84de6e80b49eacfc1fef64a?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">lizardo</media:title>
		</media:content>
	</item>
	</channel>
</rss>