while not keypressed (Posts about rpm)https://www.keypressure.com/blog/tags/rpm.atom2022-11-06T22:59:48ZRoman YepishevNikolaTizen: Building a Platform Application for Emulatorhttps://www.keypressure.com/blog/tizen-emulator-platform-app/2013-08-17T11:47:35Z2013-08-17T11:47:35ZRoman Yepishev<p>While I am still in love with Tizen platform, and having spent some time
fixing build bugs I should not have introduced in the first place, here are my
findings about Tizen build system.</p>
<p>Tizen supports both HTML5-based applications and native ones. The latter can
be packaged as RPM archives for platform applications or as a widget ZIP
archive when installed by a user. RPMs are built using <a class="reference external" href="https://source.tizen.org/documentation/reference/git-build-system/">GIT Build System</a>
(GBS) which manages a local build chroots, export the sources for building,
submit changes to Gerrit etc.</p>
<p>You should install GBS by following the <a class="reference external" href="https://source.tizen.org/documentation/developer-guide/installing-development-tools">Installing Development Tools</a> guide.
Also note that you don't really need to have all the platform sources on your
local machine as GBS will fetch all the required dependency archives and
re-create the build environment in the chroot. RPM files must specify the
<code class="docutils literal">BuildDepends</code> for the magic to happen.</p>
<p>Emulator builds are different from the real device ones in some subtle ways.
I've spent a few days figuring out why <code class="docutils literal">libewebkit2</code> compiled from the sources
would not work on an emulator. It turned out there exist a separate tizen
repository for emulator RPMs and trying to put real-world packages into an
emulator may fail in really bizzare ways (how do you like a black screen upon
HTML5 app launch?). At the moment of writing the latest snapshot is
<a class="reference external" href="http://download.tizen.org/releases/2.2-emul/tizen-2.2-emul_20130719.2/">tizen-2.2-emul_20130719.2</a>.</p>
<p>You will need a <code class="docutils literal">.gbs.conf</code> in your $HOME. We are building for an emulator,
please note the repo URL:</p>
<div class="code"><pre class="code ini"><a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-1" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-1"></a><span class="k">[general]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-2" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-2"></a><span class="na">tmpdir</span><span class="o">=</span><span class="s">/var/tmp/</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-3" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-3"></a><span class="na">profile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">profile.tizen2.2_emul</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-4" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-4"></a>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-5" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-5"></a><span class="k">[repo.tizen2.2_emul]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-6" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-6"></a><span class="na">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">http://download.tizen.org/releases/2.2-emul/tizen-2.2-emul_20130719.2/</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-7" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-7"></a>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-8" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-8"></a><span class="k">[profile.tizen2.2_emul]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-9" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-9"></a><span class="na">repos</span><span class="o">=</span><span class="s">repo.tizen2.2_emul</span><span class="w"></span>
</pre></div>
<p>Now we need our application. The source is available from GitHub branch at
<a class="reference external" href="https://github.com/roman-yepishev/tizen-example-platform-app/tree/d6397a033f40ead156340485cf1f29044dbffc0b">tizen-example-platform-app</a>.</p>
<p>GBS looks for a <code class="docutils literal">packaging</code> directory for a spec file, so this should be always present:</p>
<div class="code"><pre class="code spec"><a id="rest_code_82644e8279694e739e5643bc336613da-1" name="rest_code_82644e8279694e739e5643bc336613da-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-1"></a><span class="gh">Name</span><span class="p">:</span><span class="w"> </span>example-platform-app<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-2" name="rest_code_82644e8279694e739e5643bc336613da-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-2"></a><span class="gh">Version</span><span class="p">:</span><span class="w"> </span>1.0<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-3" name="rest_code_82644e8279694e739e5643bc336613da-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-3"></a><span class="gh">Release</span><span class="p">:</span><span class="w"> </span>1<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-4" name="rest_code_82644e8279694e739e5643bc336613da-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-4"></a><span class="gh">Summary</span><span class="p">:</span><span class="w"> </span>Example<span class="w"> </span>Tizen<span class="w"> </span>Platform<span class="w"> </span>App<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-5" name="rest_code_82644e8279694e739e5643bc336613da-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-5"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-6" name="rest_code_82644e8279694e739e5643bc336613da-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-6"></a><span class="gh">License</span><span class="p">:</span><span class="w"> </span>GPL2<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-7" name="rest_code_82644e8279694e739e5643bc336613da-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-7"></a><span class="gh">URL</span><span class="p">:</span><span class="w"> </span>http://rtg.in.ua<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-8" name="rest_code_82644e8279694e739e5643bc336613da-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-8"></a><span class="gh">Source0</span><span class="p">:</span><span class="w"> </span><span class="kc">%{name}</span>-<span class="kc">%{version}</span>.tar.gz<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-9" name="rest_code_82644e8279694e739e5643bc336613da-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-9"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-10" name="rest_code_82644e8279694e739e5643bc336613da-10" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-10"></a><span class="nd">%description</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-11" name="rest_code_82644e8279694e739e5643bc336613da-11" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-11"></a>Example<span class="w"> </span>Tizen<span class="w"> </span>Platform<span class="w"> </span>Application<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-12" name="rest_code_82644e8279694e739e5643bc336613da-12" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-12"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-13" name="rest_code_82644e8279694e739e5643bc336613da-13" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-13"></a><span class="nd">%prep</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-14" name="rest_code_82644e8279694e739e5643bc336613da-14" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-14"></a><span class="k">%setup</span><span class="w"> </span>-q<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-15" name="rest_code_82644e8279694e739e5643bc336613da-15" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-15"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-16" name="rest_code_82644e8279694e739e5643bc336613da-16" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-16"></a><span class="nd">%build</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-17" name="rest_code_82644e8279694e739e5643bc336613da-17" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-17"></a>make<span class="w"> </span><span class="nv">%{?_smp_mflags}</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-18" name="rest_code_82644e8279694e739e5643bc336613da-18" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-18"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-19" name="rest_code_82644e8279694e739e5643bc336613da-19" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-19"></a><span class="nd">%install</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-20" name="rest_code_82644e8279694e739e5643bc336613da-20" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-20"></a>make<span class="w"> </span>install<span class="w"> </span>DESTDIR=<span class="kc">%{buildroot}</span><span class="w"> </span>PREFIX=<span class="kp">%{_prefix}</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-21" name="rest_code_82644e8279694e739e5643bc336613da-21" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-21"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-22" name="rest_code_82644e8279694e739e5643bc336613da-22" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-22"></a><span class="nd">%files</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-23" name="rest_code_82644e8279694e739e5643bc336613da-23" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-23"></a><span class="kp">%{_bindir}</span>/example-platform-app<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-24" name="rest_code_82644e8279694e739e5643bc336613da-24" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-24"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-25" name="rest_code_82644e8279694e739e5643bc336613da-25" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-25"></a><span class="nd">%changelog</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-26" name="rest_code_82644e8279694e739e5643bc336613da-26" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-26"></a><span class="gu">* Sat Aug 17 2013 Roman Yepishev <roman.yepishev@yandex.ua></span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-27" name="rest_code_82644e8279694e739e5643bc336613da-27" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-27"></a>-<span class="w"> </span>Initial<span class="w"> </span>version<span class="w"></span>
</pre></div>
<p>Upon cloning the repository you are ready to build the application.</p>
<div class="code"><pre class="code text"><a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1"></a>$ git clone https://github.com/roman-yepishev/tizen-example-platform-app.git
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2"></a>$ cd tizen-example-platform-app
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3"></a>$ gbs build -A i586
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4"></a>info: generate repositories ...
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5"></a>...
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6"></a>info: generated RPM packages can be found from local repo:
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7"></a> /home/rye/GBS-ROOT/local/repos/tizen2.2_emul/i586/RPMS
</pre></div>
<p>GBS automatically creates GBS-ROOT in your home directory, visiting the RPMS
shows we have new shiny RPM packages:</p>
<div class="code"><pre class="code text"><a id="rest_code_e65747b2bab344498abd0bbe6c216e43-1" name="rest_code_e65747b2bab344498abd0bbe6c216e43-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-1"></a>$ cd /home/rye/GBS-ROOT/local/repos/tizen2.2_emul/i586/RPMS
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-2" name="rest_code_e65747b2bab344498abd0bbe6c216e43-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-2"></a>$ ls
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-3" name="rest_code_e65747b2bab344498abd0bbe6c216e43-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-3"></a>example-platform-app-1.0-1.i586.rpm
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-4" name="rest_code_e65747b2bab344498abd0bbe6c216e43-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-4"></a>example-platform-app-debuginfo-1.0-1.i586.rpm
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-5" name="rest_code_e65747b2bab344498abd0bbe6c216e43-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-5"></a>example-platform-app-debugsource-1.0-1.i586.rpm
</pre></div>
<p>While you are at it, there are a few useful <code class="docutils literal">gbs build</code> options,
the full list of options can be seen by running <code class="docutils literal">gbs build <span class="pre">--help</span></code>:</p>
<div class="code"><pre class="code text"><a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-1" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-1"></a>--debug debug output
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-2" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-2"></a>--overwrite overwrite existing binaries and build them anyway
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-3" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-3"></a>-C, --clean delete old build root before initialization
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-4" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-4"></a>--clean-repos clean up local repos created by gbs
</pre></div>
<p>Fire up the emulator instance and wait until sdb sees it:</p>
<div class="code"><pre class="code text"><a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-1" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-1"></a>$ sdb devices
<a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-2" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-2"></a>List of devices attached
<a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-3" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-3"></a>emulator-26100 device Test
</pre></div>
<p>The only part left is to push the RPMs and install them:</p>
<div class="code"><pre class="code text"><a id="rest_code_39a45028cb3149cfadfa84debe994716-1" name="rest_code_39a45028cb3149cfadfa84debe994716-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-1"></a>$ sdb push example-platform-app-1.0-1.i586.rpm /tmp
<a id="rest_code_39a45028cb3149cfadfa84debe994716-2" name="rest_code_39a45028cb3149cfadfa84debe994716-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-2"></a>1 file(s) pushed. 0 file(s) skipped.
<a id="rest_code_39a45028cb3149cfadfa84debe994716-3" name="rest_code_39a45028cb3149cfadfa84debe994716-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-3"></a>example-platform-app-1.0-1.i586.rpm 36 KB/s (4645 bytes in 0.125s)
<a id="rest_code_39a45028cb3149cfadfa84debe994716-4" name="rest_code_39a45028cb3149cfadfa84debe994716-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-4"></a>
<a id="rest_code_39a45028cb3149cfadfa84debe994716-5" name="rest_code_39a45028cb3149cfadfa84debe994716-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-5"></a>$ sdb root on
<a id="rest_code_39a45028cb3149cfadfa84debe994716-6" name="rest_code_39a45028cb3149cfadfa84debe994716-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-6"></a>Switched to 'root' account mode
<a id="rest_code_39a45028cb3149cfadfa84debe994716-7" name="rest_code_39a45028cb3149cfadfa84debe994716-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-7"></a>
<a id="rest_code_39a45028cb3149cfadfa84debe994716-8" name="rest_code_39a45028cb3149cfadfa84debe994716-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-8"></a>$ sdb shell
<a id="rest_code_39a45028cb3149cfadfa84debe994716-9" name="rest_code_39a45028cb3149cfadfa84debe994716-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-9"></a>sh-4.1# rpm -Uhv /tmp/example-platform-app-1.0-1.i586.rpm
<a id="rest_code_39a45028cb3149cfadfa84debe994716-10" name="rest_code_39a45028cb3149cfadfa84debe994716-10" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-10"></a>reading device security policy from /etc/device-sec-policy
<a id="rest_code_39a45028cb3149cfadfa84debe994716-11" name="rest_code_39a45028cb3149cfadfa84debe994716-11" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-11"></a>package ac-domain-system defined ac domain Isolated
<a id="rest_code_39a45028cb3149cfadfa84debe994716-12" name="rest_code_39a45028cb3149cfadfa84debe994716-12" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-12"></a>...
<a id="rest_code_39a45028cb3149cfadfa84debe994716-13" name="rest_code_39a45028cb3149cfadfa84debe994716-13" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-13"></a>Preparing... ########################################### [100%]
<a id="rest_code_39a45028cb3149cfadfa84debe994716-14" name="rest_code_39a45028cb3149cfadfa84debe994716-14" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-14"></a>no RSA signature, cannot search sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-15" name="rest_code_39a45028cb3149cfadfa84debe994716-15" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-15"></a>using _default_ sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-16" name="rest_code_39a45028cb3149cfadfa84debe994716-16" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-16"></a>No manifest in this package. Creating default one
<a id="rest_code_39a45028cb3149cfadfa84debe994716-17" name="rest_code_39a45028cb3149cfadfa84debe994716-17" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-17"></a>adding example-platform-app manifest data to system, package_name example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-18" name="rest_code_39a45028cb3149cfadfa84debe994716-18" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-18"></a>sw source _default_ provided package example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-19" name="rest_code_39a45028cb3149cfadfa84debe994716-19" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-19"></a>Request for a domain name _ is allowed based on package sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-20" name="rest_code_39a45028cb3149cfadfa84debe994716-20" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-20"></a> 1:example-platform-app setting SMACK64 _ for /usr/bin/example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-21" name="rest_code_39a45028cb3149cfadfa84debe994716-21" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-21"></a>setting SMACK64EXEC _ for /usr/bin/example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-22" name="rest_code_39a45028cb3149cfadfa84debe994716-22" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-22"></a>########################################### [100%]
<a id="rest_code_39a45028cb3149cfadfa84debe994716-23" name="rest_code_39a45028cb3149cfadfa84debe994716-23" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-23"></a>sh-4.1# example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-24" name="rest_code_39a45028cb3149cfadfa84debe994716-24" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-24"></a>Hello, Tizen!
</pre></div>
<p>Congratulations, you have a platform application running on the emulator. This
application does not do anything interesting for now but it can be used as a
starting point.</p>
<p>I can also confess that I really like RPMs now.</p><p>While I am still in love with Tizen platform, and having spent some time
fixing build bugs I should not have introduced in the first place, here are my
findings about Tizen build system.</p>
<p>Tizen supports both HTML5-based applications and native ones. The latter can
be packaged as RPM archives for platform applications or as a widget ZIP
archive when installed by a user. RPMs are built using <a class="reference external" href="https://source.tizen.org/documentation/reference/git-build-system/">GIT Build System</a>
(GBS) which manages a local build chroots, export the sources for building,
submit changes to Gerrit etc.</p>
<p>You should install GBS by following the <a class="reference external" href="https://source.tizen.org/documentation/developer-guide/installing-development-tools">Installing Development Tools</a> guide.
Also note that you don't really need to have all the platform sources on your
local machine as GBS will fetch all the required dependency archives and
re-create the build environment in the chroot. RPM files must specify the
<code class="docutils literal">BuildDepends</code> for the magic to happen.</p>
<p>Emulator builds are different from the real device ones in some subtle ways.
I've spent a few days figuring out why <code class="docutils literal">libewebkit2</code> compiled from the sources
would not work on an emulator. It turned out there exist a separate tizen
repository for emulator RPMs and trying to put real-world packages into an
emulator may fail in really bizzare ways (how do you like a black screen upon
HTML5 app launch?). At the moment of writing the latest snapshot is
<a class="reference external" href="http://download.tizen.org/releases/2.2-emul/tizen-2.2-emul_20130719.2/">tizen-2.2-emul_20130719.2</a>.</p>
<p>You will need a <code class="docutils literal">.gbs.conf</code> in your $HOME. We are building for an emulator,
please note the repo URL:</p>
<div class="code"><pre class="code ini"><a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-1" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-1"></a><span class="k">[general]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-2" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-2"></a><span class="na">tmpdir</span><span class="o">=</span><span class="s">/var/tmp/</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-3" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-3"></a><span class="na">profile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">profile.tizen2.2_emul</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-4" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-4"></a>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-5" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-5"></a><span class="k">[repo.tizen2.2_emul]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-6" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-6"></a><span class="na">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">http://download.tizen.org/releases/2.2-emul/tizen-2.2-emul_20130719.2/</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-7" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-7"></a>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-8" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-8"></a><span class="k">[profile.tizen2.2_emul]</span><span class="w"></span>
<a id="rest_code_b12b5242af6649f6bc768b48b755e1c5-9" name="rest_code_b12b5242af6649f6bc768b48b755e1c5-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_b12b5242af6649f6bc768b48b755e1c5-9"></a><span class="na">repos</span><span class="o">=</span><span class="s">repo.tizen2.2_emul</span><span class="w"></span>
</pre></div>
<p>Now we need our application. The source is available from GitHub branch at
<a class="reference external" href="https://github.com/roman-yepishev/tizen-example-platform-app/tree/d6397a033f40ead156340485cf1f29044dbffc0b">tizen-example-platform-app</a>.</p>
<p>GBS looks for a <code class="docutils literal">packaging</code> directory for a spec file, so this should be always present:</p>
<div class="code"><pre class="code spec"><a id="rest_code_82644e8279694e739e5643bc336613da-1" name="rest_code_82644e8279694e739e5643bc336613da-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-1"></a><span class="gh">Name</span><span class="p">:</span><span class="w"> </span>example-platform-app<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-2" name="rest_code_82644e8279694e739e5643bc336613da-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-2"></a><span class="gh">Version</span><span class="p">:</span><span class="w"> </span>1.0<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-3" name="rest_code_82644e8279694e739e5643bc336613da-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-3"></a><span class="gh">Release</span><span class="p">:</span><span class="w"> </span>1<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-4" name="rest_code_82644e8279694e739e5643bc336613da-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-4"></a><span class="gh">Summary</span><span class="p">:</span><span class="w"> </span>Example<span class="w"> </span>Tizen<span class="w"> </span>Platform<span class="w"> </span>App<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-5" name="rest_code_82644e8279694e739e5643bc336613da-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-5"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-6" name="rest_code_82644e8279694e739e5643bc336613da-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-6"></a><span class="gh">License</span><span class="p">:</span><span class="w"> </span>GPL2<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-7" name="rest_code_82644e8279694e739e5643bc336613da-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-7"></a><span class="gh">URL</span><span class="p">:</span><span class="w"> </span>http://rtg.in.ua<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-8" name="rest_code_82644e8279694e739e5643bc336613da-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-8"></a><span class="gh">Source0</span><span class="p">:</span><span class="w"> </span><span class="kc">%{name}</span>-<span class="kc">%{version}</span>.tar.gz<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-9" name="rest_code_82644e8279694e739e5643bc336613da-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-9"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-10" name="rest_code_82644e8279694e739e5643bc336613da-10" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-10"></a><span class="nd">%description</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-11" name="rest_code_82644e8279694e739e5643bc336613da-11" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-11"></a>Example<span class="w"> </span>Tizen<span class="w"> </span>Platform<span class="w"> </span>Application<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-12" name="rest_code_82644e8279694e739e5643bc336613da-12" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-12"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-13" name="rest_code_82644e8279694e739e5643bc336613da-13" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-13"></a><span class="nd">%prep</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-14" name="rest_code_82644e8279694e739e5643bc336613da-14" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-14"></a><span class="k">%setup</span><span class="w"> </span>-q<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-15" name="rest_code_82644e8279694e739e5643bc336613da-15" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-15"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-16" name="rest_code_82644e8279694e739e5643bc336613da-16" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-16"></a><span class="nd">%build</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-17" name="rest_code_82644e8279694e739e5643bc336613da-17" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-17"></a>make<span class="w"> </span><span class="nv">%{?_smp_mflags}</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-18" name="rest_code_82644e8279694e739e5643bc336613da-18" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-18"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-19" name="rest_code_82644e8279694e739e5643bc336613da-19" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-19"></a><span class="nd">%install</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-20" name="rest_code_82644e8279694e739e5643bc336613da-20" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-20"></a>make<span class="w"> </span>install<span class="w"> </span>DESTDIR=<span class="kc">%{buildroot}</span><span class="w"> </span>PREFIX=<span class="kp">%{_prefix}</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-21" name="rest_code_82644e8279694e739e5643bc336613da-21" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-21"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-22" name="rest_code_82644e8279694e739e5643bc336613da-22" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-22"></a><span class="nd">%files</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-23" name="rest_code_82644e8279694e739e5643bc336613da-23" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-23"></a><span class="kp">%{_bindir}</span>/example-platform-app<span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-24" name="rest_code_82644e8279694e739e5643bc336613da-24" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-24"></a>
<a id="rest_code_82644e8279694e739e5643bc336613da-25" name="rest_code_82644e8279694e739e5643bc336613da-25" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-25"></a><span class="nd">%changelog</span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-26" name="rest_code_82644e8279694e739e5643bc336613da-26" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-26"></a><span class="gu">* Sat Aug 17 2013 Roman Yepishev <roman.yepishev@yandex.ua></span><span class="w"></span>
<a id="rest_code_82644e8279694e739e5643bc336613da-27" name="rest_code_82644e8279694e739e5643bc336613da-27" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_82644e8279694e739e5643bc336613da-27"></a>-<span class="w"> </span>Initial<span class="w"> </span>version<span class="w"></span>
</pre></div>
<p>Upon cloning the repository you are ready to build the application.</p>
<div class="code"><pre class="code text"><a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-1"></a>$ git clone https://github.com/roman-yepishev/tizen-example-platform-app.git
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-2"></a>$ cd tizen-example-platform-app
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-3"></a>$ gbs build -A i586
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-4"></a>info: generate repositories ...
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-5"></a>...
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-6"></a>info: generated RPM packages can be found from local repo:
<a id="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7" name="rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_6f77c8ae305a442eaf374e9a9f0fca7e-7"></a> /home/rye/GBS-ROOT/local/repos/tizen2.2_emul/i586/RPMS
</pre></div>
<p>GBS automatically creates GBS-ROOT in your home directory, visiting the RPMS
shows we have new shiny RPM packages:</p>
<div class="code"><pre class="code text"><a id="rest_code_e65747b2bab344498abd0bbe6c216e43-1" name="rest_code_e65747b2bab344498abd0bbe6c216e43-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-1"></a>$ cd /home/rye/GBS-ROOT/local/repos/tizen2.2_emul/i586/RPMS
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-2" name="rest_code_e65747b2bab344498abd0bbe6c216e43-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-2"></a>$ ls
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-3" name="rest_code_e65747b2bab344498abd0bbe6c216e43-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-3"></a>example-platform-app-1.0-1.i586.rpm
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-4" name="rest_code_e65747b2bab344498abd0bbe6c216e43-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-4"></a>example-platform-app-debuginfo-1.0-1.i586.rpm
<a id="rest_code_e65747b2bab344498abd0bbe6c216e43-5" name="rest_code_e65747b2bab344498abd0bbe6c216e43-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e65747b2bab344498abd0bbe6c216e43-5"></a>example-platform-app-debugsource-1.0-1.i586.rpm
</pre></div>
<p>While you are at it, there are a few useful <code class="docutils literal">gbs build</code> options,
the full list of options can be seen by running <code class="docutils literal">gbs build <span class="pre">--help</span></code>:</p>
<div class="code"><pre class="code text"><a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-1" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-1"></a>--debug debug output
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-2" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-2"></a>--overwrite overwrite existing binaries and build them anyway
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-3" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-3"></a>-C, --clean delete old build root before initialization
<a id="rest_code_e44f5f65a56a4bf0b8d17964acce2863-4" name="rest_code_e44f5f65a56a4bf0b8d17964acce2863-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_e44f5f65a56a4bf0b8d17964acce2863-4"></a>--clean-repos clean up local repos created by gbs
</pre></div>
<p>Fire up the emulator instance and wait until sdb sees it:</p>
<div class="code"><pre class="code text"><a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-1" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-1"></a>$ sdb devices
<a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-2" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-2"></a>List of devices attached
<a id="rest_code_c23860ba4704402fb7fd61dd6ee69beb-3" name="rest_code_c23860ba4704402fb7fd61dd6ee69beb-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_c23860ba4704402fb7fd61dd6ee69beb-3"></a>emulator-26100 device Test
</pre></div>
<p>The only part left is to push the RPMs and install them:</p>
<div class="code"><pre class="code text"><a id="rest_code_39a45028cb3149cfadfa84debe994716-1" name="rest_code_39a45028cb3149cfadfa84debe994716-1" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-1"></a>$ sdb push example-platform-app-1.0-1.i586.rpm /tmp
<a id="rest_code_39a45028cb3149cfadfa84debe994716-2" name="rest_code_39a45028cb3149cfadfa84debe994716-2" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-2"></a>1 file(s) pushed. 0 file(s) skipped.
<a id="rest_code_39a45028cb3149cfadfa84debe994716-3" name="rest_code_39a45028cb3149cfadfa84debe994716-3" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-3"></a>example-platform-app-1.0-1.i586.rpm 36 KB/s (4645 bytes in 0.125s)
<a id="rest_code_39a45028cb3149cfadfa84debe994716-4" name="rest_code_39a45028cb3149cfadfa84debe994716-4" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-4"></a>
<a id="rest_code_39a45028cb3149cfadfa84debe994716-5" name="rest_code_39a45028cb3149cfadfa84debe994716-5" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-5"></a>$ sdb root on
<a id="rest_code_39a45028cb3149cfadfa84debe994716-6" name="rest_code_39a45028cb3149cfadfa84debe994716-6" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-6"></a>Switched to 'root' account mode
<a id="rest_code_39a45028cb3149cfadfa84debe994716-7" name="rest_code_39a45028cb3149cfadfa84debe994716-7" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-7"></a>
<a id="rest_code_39a45028cb3149cfadfa84debe994716-8" name="rest_code_39a45028cb3149cfadfa84debe994716-8" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-8"></a>$ sdb shell
<a id="rest_code_39a45028cb3149cfadfa84debe994716-9" name="rest_code_39a45028cb3149cfadfa84debe994716-9" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-9"></a>sh-4.1# rpm -Uhv /tmp/example-platform-app-1.0-1.i586.rpm
<a id="rest_code_39a45028cb3149cfadfa84debe994716-10" name="rest_code_39a45028cb3149cfadfa84debe994716-10" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-10"></a>reading device security policy from /etc/device-sec-policy
<a id="rest_code_39a45028cb3149cfadfa84debe994716-11" name="rest_code_39a45028cb3149cfadfa84debe994716-11" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-11"></a>package ac-domain-system defined ac domain Isolated
<a id="rest_code_39a45028cb3149cfadfa84debe994716-12" name="rest_code_39a45028cb3149cfadfa84debe994716-12" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-12"></a>...
<a id="rest_code_39a45028cb3149cfadfa84debe994716-13" name="rest_code_39a45028cb3149cfadfa84debe994716-13" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-13"></a>Preparing... ########################################### [100%]
<a id="rest_code_39a45028cb3149cfadfa84debe994716-14" name="rest_code_39a45028cb3149cfadfa84debe994716-14" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-14"></a>no RSA signature, cannot search sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-15" name="rest_code_39a45028cb3149cfadfa84debe994716-15" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-15"></a>using _default_ sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-16" name="rest_code_39a45028cb3149cfadfa84debe994716-16" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-16"></a>No manifest in this package. Creating default one
<a id="rest_code_39a45028cb3149cfadfa84debe994716-17" name="rest_code_39a45028cb3149cfadfa84debe994716-17" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-17"></a>adding example-platform-app manifest data to system, package_name example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-18" name="rest_code_39a45028cb3149cfadfa84debe994716-18" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-18"></a>sw source _default_ provided package example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-19" name="rest_code_39a45028cb3149cfadfa84debe994716-19" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-19"></a>Request for a domain name _ is allowed based on package sw source
<a id="rest_code_39a45028cb3149cfadfa84debe994716-20" name="rest_code_39a45028cb3149cfadfa84debe994716-20" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-20"></a> 1:example-platform-app setting SMACK64 _ for /usr/bin/example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-21" name="rest_code_39a45028cb3149cfadfa84debe994716-21" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-21"></a>setting SMACK64EXEC _ for /usr/bin/example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-22" name="rest_code_39a45028cb3149cfadfa84debe994716-22" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-22"></a>########################################### [100%]
<a id="rest_code_39a45028cb3149cfadfa84debe994716-23" name="rest_code_39a45028cb3149cfadfa84debe994716-23" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-23"></a>sh-4.1# example-platform-app
<a id="rest_code_39a45028cb3149cfadfa84debe994716-24" name="rest_code_39a45028cb3149cfadfa84debe994716-24" href="https://www.keypressure.com/blog/tizen-emulator-platform-app/#rest_code_39a45028cb3149cfadfa84debe994716-24"></a>Hello, Tizen!
</pre></div>
<p>Congratulations, you have a platform application running on the emulator. This
application does not do anything interesting for now but it can be used as a
starting point.</p>
<p>I can also confess that I really like RPMs now.</p>