cryptonas-archive/v0.3.5/doc/html/en/CryptoBoxDevWorkFlow.html

157 lines
8.7 KiB
HTML
Raw Permalink Normal View History

2009-07-18 06:12:08 +02:00
<div class="wikipage">
<div id="searchable"><p>
<div class='wiki-toc'>
<h4>Table of Contents</h4>
<ol>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Preparations">Preparations</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#CreateaCryptoBoxLiveCD">Create a CryptoBox-LiveCD</a></li>
<ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Buildthebasesystem">Build the base system</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Configurethebaseimage">Configure the base image</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Removedevelopmentfeatures">Remove development features</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Createanisoimage">Create an iso image</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#BurntheCD">Burn the CD</a></li>
</ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#TesttheCryptoBoxLiveCD">Test the CryptoBox-LiveCD</a></li>
<ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Chrootquickampdirtytests">Chroot: quick &amp; dirty tests</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Qemunearlycompleteemulation">Qemu: nearly complete emulation</a></li>
</ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Debuggingandmerging">Debugging and merging</a></li>
<ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Developmentonarunningsystem">Development on a running system</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Copyingatestversion">Copying a testversion</a></li>
</ol><li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#SettingupanewRelease">Setting up a new Release</a></li>
<li><a href="?action=doc&page=CryptoBoxDevWorkFlow&weblang=en#Comments">Comments</a></li>
</ol>
</div>
</p>
<p>
<strong>Navigation:</strong> ( <a href="?action=doc&page=CryptoBoxDev&weblang=en">CryptoBoxDev</a>, <a href="?action=doc&page=CryptoBoxDevCustomConfigure&weblang=en">CryptoBoxDevCustomConfigure</a>, <a href="/trac/cryptobox/wiki/CryptoBoxDevPreparation">CryptoBoxDevPreparation</a>)
</p>
<hr />
<h1 id="Developmentworkflow">Development workflow</h1>
<h2 id="Preparations">Preparations</h2>
<p>
You should have completed the steps described in <a href="?action=doc&page=CryptoBoxDevPreparation&weblang=en">CryptoBoxDevPreparation</a>.
</p>
<h2 id="CreateaCryptoBoxLiveCD">Create a CryptoBox-LiveCD</h2>
<p>
The following steps can be executed in the order of their appearance.
</p>
<p>
Usually there is no need to repeat the whole process, after you changed some parts of the <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a>. Especially the first step (building of the base system with <i>dfsbuild</i>) may usually be skipped.
</p>
<p>
Every step of the building process must be executed as <i>root</i>.
</p>
<h3 id="Buildthebasesystem">Build the base system</h3>
<p>
Run <i>scripts/cbox-build.sh dfsbuild</i> to create the base system for the LiveCD.
</p>
<p>
The result can be found in <i>_builddir/cd1/image</i>.
</p>
<p>
If you do not want to use the <i><a class="ext-link" title="http://packages.debian.org/cgi-bin/search_packages.pl?searchon=names&amp;subword=0&amp;version=all&amp;release=all&amp;keywords=apt-cacher" href="http://packages.debian.org/cgi-bin/search_packages.pl?searchon=names&amp;subword=0&amp;version=all&amp;release=all&amp;keywords=apt-cacher">apt-cacher</a> to save bandwidth and time, then you should modify the </i>mirror<i>-setting in <a href="/trac/cryptobox/browser/trunk/etc-default.d/dfs-cbox.conf">dfs-cbox.conf</a> (see <a href="?action=doc&page=CryptoBoxDevCustomBuild&weblang=en">CryptoBoxDevCustomBuild</a> for details).</i>
</p>
<h3 id="Configurethebaseimage">Configure the base image</h3>
<p>
Run <i>scripts/cbox-build.sh config</i> to copy the CryptoBox-specific files to the base image.
</p>
<p>
TODO: link to cbox-build.sh-manpage
</p>
<h3 id="Removedevelopmentfeatures">Remove development features</h3>
<p>
The original base system, that was created by <i>dfsbuild</i> contains a lot packages and some scripts, that are only useful during development. You should remove them, as they cause severe security implications.
</p>
<p>
To reduce the CryptoBox-LiveCD to the usable minimum for operational use, you should run <i>scripts/cbox-build.sh harden</i>.
</p>
<h3 id="Createanisoimage">Create an iso image</h3>
<p>
To burn a CryptoBox-LiveCD, you need an bootable <i>iso9660</i>-image.
</p>
<p>
Create the <i>iso</i> image with <i>scripts/cbox-build.sh iso</i>. The resulting file can be found at <i>_builddir/cd1/cryptobox.iso</i>.
</p>
<h3 id="BurntheCD">Burn the CD</h3>
<p>
Do it manually:
</p>
<pre class="wiki">cdrecord -v dev=0,0,0 _builddir/cryptobox.iso
</pre><p>
(change the <i>dev</i> setting according to your setup).
</p>
<p>
Let the script do it for you: <i>scripts/cbox-build.sh burn</i> (maybe you have to change the <i>CDWRITER</i> setting in <a href="/trac/cryptobox/browser/trunk/etc-defaults.d/cbox-dev.conf">cbox-dev.conf</a> - see <a href="?action=doc&page=CryptoBoxDevCustomBuild&weblang=en">CryptoBoxDevCustomBuild</a>).
</p>
<p>
Of course, it is not wise to use CD-R media. CD-RW consume less resources.
</p>
<h2 id="TesttheCryptoBoxLiveCD">Test the CryptoBox-LiveCD</h2>
<p>
This section is only useful for developers, who want to improve or change the <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> system.
</p>
<h3 id="Chrootquickampdirtytests">Chroot: quick &amp; dirty tests</h3>
<p>
If you modified the <i>perl</i>- or <i>shell</i>-scripts of the <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a>, then you can check for syntax errors by running them in a <i>chroot</i> environment. Be careful: you have access to all ressources of your computer, while you are working within a <i>chroot</i> environment - so you can easily repartition your real disk ...
</p>
<p>
To start a <i>chroot</i> environment, you can execute <i>scripts/cbox-dev.sh chroot</i>.
</p>
<p>
For more intensive tests, you may use <i>qemu</i> (see below) or burn real LiveCDs - of course this would take much more time.
</p>
<h3 id="Qemunearlycompleteemulation">Qemu: nearly complete emulation</h3>
<p>
The processor emulator <a class="ext-link" title="http://fabrice.bellard.free.fr/qemu" href="http://fabrice.bellard.free.fr/qemu">qemu</a> allows you test the <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> in a virtual environment, that is completely separated from your real computer's resources. It is the tool of choice, if you do nat have a real computer around for testing.
</p>
<p>
Beware - there are some problems, when using <i>qemu</i>:
</p>
<ul><li><i>smbd</i> does not start (segfault)
</li><li>???
</li></ul><p>
To start a <i>qemu</i> emulation of the <i>iso</i> image, you may type:
</p>
<pre class="wiki">scripts/cbox-dev.sh qemu
</pre><h2 id="Debuggingandmerging">Debugging and merging</h2>
<p>
This section is only useful for developers, who want to develop on a running <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> system (emulated or real).
</p>
<p>
You may access the <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> directly or you can use <i>ssh</i> to open a remote session:
</p>
<pre class="wiki">./cbox-dev.sh ssh
</pre><h3 id="Developmentonarunningsystem">Development on a running system</h3>
<p>
When you run an emulation or test a real LiveCD, you may encounter problems and bugs. To test your fixes for these problems, it is convenient, to change the running test system. Afterwards you can merge these changes to your local development copy.
</p>
<p>
Type <i>scripts/cbox-dev.sh diff</i> to see the changes, you made on the running <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> system.
</p>
<p>
Type <i>scripts/cbox-dev.sh merge</i> to merge these changes to your local working copy.
</p>
<h3 id="Copyingatestversion">Copying a testversion</h3>
<p>
Alternatively you may also upload a new version of your local working copy to the running <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> system.
</p>
<p>
Type <i>scripts/cbox-dev.sh upload</i> - beware: all recent changes you made to the running <a href="?action=doc&page=CryptoBox&weblang=en">CryptoBox</a> system, are lost.
</p>
<h2 id="SettingupanewRelease">Setting up a new Release</h2>
<p>
Once you finished your development, you surely want to make a new release. Please read the instructions in the <a href="/trac/cryptobox/browser/trunk/hints/release-policy.txt">releas-policy.txt</a> it will save you a lot of time! Then you basically just have to run <i>scripts/cbox-build.sh release</i> and get yourself a good coffee. After the command has finished you'll see the releasefiles in <i>_buildir</i>.
</p>
<hr />
<h2 id="Comments">Comments</h2>
<p>
</div>
</div>