<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?action=history&amp;amp;feed=atom&amp;amp;title=Doc-dev</id>
		<title>Doc-dev - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?action=history&amp;amp;feed=atom&amp;amp;title=Doc-dev"/>
		<link rel="alternate" type="text/html" href="http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;action=history"/>
		<updated>2026-05-02T10:54:09Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=455&amp;oldid=prev</id>
		<title>Rfairise : Page redirigée vers Developer Documentation</title>
		<link rel="alternate" type="text/html" href="http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=455&amp;oldid=prev"/>
				<updated>2010-09-09T14:00:43Z</updated>
		
		<summary type="html">&lt;p&gt;Page redirigée vers &lt;a href=&quot;/plugins/mediawiki/wiki/milimail/index.php/Developer_Documentation&quot; title=&quot;Developer Documentation&quot;&gt;Developer Documentation&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;amp;diff=455&amp;amp;oldid=47&quot;&gt;Voir les modifications&lt;/a&gt;</summary>
		<author><name>Rfairise</name></author>	</entry>

	<entry>
		<id>http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=47&amp;oldid=prev</id>
		<title>Rfairise : /* Other technical documentation */</title>
		<link rel="alternate" type="text/html" href="http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=47&amp;oldid=prev"/>
				<updated>2010-09-02T13:15:05Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Other technical documentation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='fr'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version du 2 septembre 2010 à 13:15&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 294 :&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 294 :&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Decrypt DER-encoded with private key:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Decrypt DER-encoded with private key:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; $ openssl smime -decrypt -in message.der -inform DER -inkey private.key.pem -out message.clear&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; $ openssl smime -decrypt -in message.der -inform DER -inkey private.key.pem -out message.clear&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Other technical documentation ==&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{SERVER}}{{SCRIPTPATH}}/documents/MILIMAIL_Specifications_Techniques_v020.pdf Functional and technical specifications (French version)]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{SERVER}}{{SCRIPTPATH}}/documents/normes_prog_milimail.pdf Standards of development (French version)]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{SERVER}}{{SCRIPTPATH}}/documents/Recommandation_format_XSMTP_V11.pdf XSMTP Recommandations (French version)]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rfairise</name></author>	</entry>

	<entry>
		<id>http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=46&amp;oldid=prev</id>
		<title>Rfairise : Page créée avec « == Versioning convention == This chapter describes best practices for managing versions of universal messaging client Trustedbird and add-ons developed.  Version identifies t… »</title>
		<link rel="alternate" type="text/html" href="http://atelier.adullact.org/plugins/mediawiki/wiki/milimail/index.php?title=Doc-dev&amp;diff=46&amp;oldid=prev"/>
				<updated>2010-09-02T13:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « == Versioning convention == This chapter describes best practices for managing versions of universal messaging client Trustedbird and add-ons developed.  Version identifies t… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Versioning convention ==&lt;br /&gt;
This chapter describes best practices for managing versions of universal messaging client Trustedbird and add-ons developed.&lt;br /&gt;
&lt;br /&gt;
Version identifies the state of a program in its development. It is often associated with a numbering system which allows identification, and in some cases a symbolic name. The symbolic names are not used in this project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Life cycle of a software ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;10&amp;quot; width=&amp;quot;80%&amp;quot; align=&amp;quot;rigth&amp;quot; style=&amp;quot;background-color:#CCFFCC&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;65%&amp;quot; align=&amp;quot;justify&amp;quot; rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
| width=&amp;quot;35%&amp;quot; align=&amp;quot;center&amp;quot; rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
[[Image:milimail_versioning.png|Life cycle of a software]]&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;65%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
|- &lt;br /&gt;
| width=&amp;quot;65%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
&amp;lt;b&amp;gt;phase alpha:&amp;lt;/b&amp;gt;&lt;br /&gt;
* Available for an overview of the progress of the product, testing the functions currently implemented&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;65%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
&amp;lt;b&amp;gt;phase beta:&amp;lt;/b&amp;gt;&lt;br /&gt;
* The set of features is usually fixed, it is a test version to reach a maximum of bugs&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;65%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
&amp;lt;b&amp;gt;release candidate:&amp;lt;/b&amp;gt;&lt;br /&gt;
* Release candidate to be the final version&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
&amp;lt;b&amp;gt;GA version (for General Availability):&amp;lt;/b&amp;gt;&lt;br /&gt;
* Final version of the product. The version includes bug fixes found after the final version of the product, an upgrade may also be a new version of the product&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Versioning usage ===&lt;br /&gt;
The version number will be as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''major.minor.revision.build'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: the number associated with the revision, can be called maintenance.&amp;lt;br&amp;gt; &lt;br /&gt;
Here is how to increment the values of the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;80%&amp;quot; align=&amp;quot;rigth&amp;quot; style=&amp;quot;background-color:#FCFCFC&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;47%&amp;quot; |&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;45%&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
Values&lt;br /&gt;
| width=&amp;quot;47%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
Why to increment&lt;br /&gt;
| width=&amp;quot;45%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
When&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
major&lt;br /&gt;
| width=&amp;quot;47%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
* Adding an important feature.&lt;br /&gt;
* Significant change of behavior of the application.&lt;br /&gt;
* Significant change in the appearance of the application.&lt;br /&gt;
| width=&amp;quot;45%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
As soon as developments start.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
minor&lt;br /&gt;
| width=&amp;quot;47%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
* Adding non-critical features in the application.&lt;br /&gt;
* Evolution of features without change of the existing one.&lt;br /&gt;
| width=&amp;quot;45%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
As soon as developments start.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
revision&lt;br /&gt;
| width=&amp;quot;47%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
* Each delivery of bug patch (Even if there's only one correction).&lt;br /&gt;
| width=&amp;quot;45%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
Depends on the delivery of the final version:&lt;br /&gt;
* BEFORE : '''0''' With a tag indicating what life cycle you are (alpha, beta or rc).&lt;br /&gt;
* AFTER : Each time corrections are delivered.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
build&lt;br /&gt;
| width=&amp;quot;47%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
* Delivery internal or external distribution of a product.&lt;br /&gt;
| width=&amp;quot;45%&amp;quot; align=&amp;quot;justify&amp;quot; |&lt;br /&gt;
Each time the distribution is published. For the service integration, service quality or final customer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Git repository ==&lt;br /&gt;
Trustedbird sources are hosted on a Git repository.&lt;br /&gt;
&lt;br /&gt;
* [http://adullact.net/plugins/scmgit/cgi-bin/gitweb.cgi?p=milimail/trustedbird.git;a=summary Browse Git repository]&lt;br /&gt;
* Repository URL: http://adullact.net/anonscm/git/milimail/trustedbird.git&lt;br /&gt;
* Repository URL (with a project account): ssh://USERNAME@scm.adullact.net/scmrepos/git/milimail/trustedbird.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The repository has 2 branches: &amp;quot;master&amp;quot; and &amp;quot;thunderbird&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''&amp;quot;master&amp;quot;''' branch holds Trustedbird email client patch and add-ons.&lt;br /&gt;
* '''&amp;quot;thunderbird&amp;quot;''' branch holds all the files from official Thunderbird sources which have been modified in &amp;quot;master&amp;quot; branch. This branch is used for [[#Upgrading_Thunderbird|upgrading Thunderbird]] when a new upstream release is available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build Documentation ==&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
==== Linux (Debian) ====&lt;br /&gt;
* build-essential&lt;br /&gt;
* ant&lt;br /&gt;
* git-core&lt;br /&gt;
* libgtk2.0-dev&lt;br /&gt;
* libglib1.2-dev&lt;br /&gt;
* libidl-dev&lt;br /&gt;
* libxt-dev&lt;br /&gt;
* zip&lt;br /&gt;
* unzip&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* fakeroot&lt;br /&gt;
* dpkg-dev&lt;br /&gt;
* python-dev&lt;br /&gt;
* autoconf&lt;br /&gt;
* libtool&lt;br /&gt;
* a Java JDK for Ant (java-gcj-compat-dev, sun-java6-jdk, openjdk-6-jdk,...)&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
* Microsoft Visual C++ 6 with Service Pack 5 (not Service Pack 6 because Processor Pack needs SP5)&lt;br /&gt;
* Visual C++ 6.0 Processor Pack&lt;br /&gt;
* Latest MozillaBuild&lt;br /&gt;
* Git&lt;br /&gt;
* Java JDK&lt;br /&gt;
* Ant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites for more info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Add Ant and JDK path to the PATH variable in c:\mozilla-build\start-msvc6.bat:&lt;br /&gt;
 SET PATH=%PATH%;%MOZ_TOOLS%\bin;C:\mozilla-build\apache-ant-1.8.0RC1-bin\bin;C:\Program Files\Java\jdk1.6.0_18\bin&lt;br /&gt;
* Set JAVA_HOME as environment variable&lt;br /&gt;
&lt;br /&gt;
* Launch build environment with c:\mozilla-build\start-msvc6.bat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
==== Read only (with HTTP/HTTPS) ====&lt;br /&gt;
 ~$ git clone http://adullact.net/anonscm/git/milimail/trustedbird.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Read-write (with SSH) ====&lt;br /&gt;
 ~$ git clone ssh://USERNAME@scm.adullact.net/scmrepos/git/milimail/trustedbird.git&lt;br /&gt;
   (replace USERNAME with your Adullact SSH username)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
 ~$ cd trustedbird/packager&lt;br /&gt;
 ~/trustedbird/packager$ cd trustedbird/packager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download Thunderbird source file:&lt;br /&gt;
 ~/trustedbird/packager$ wget ftp://ftp.mozilla.org/pub/thunderbird/releases/2.0.0.24/source/thunderbird-2.0.0.24-source.tar.bz2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build and package Trustedbird and all add-ons:&lt;br /&gt;
 ~/trustedbird/packager$ ant build-all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OR: build and package only Trustedbird email client:&lt;br /&gt;
 ~/trustedbird/packager$ ant trustedbird&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OR: build and package only add-ons:&lt;br /&gt;
 ~/trustedbird/packager$ ant package-addons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* All built packages will be available in '''trustedbird/packager/dist/'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Upgrading Thunderbird ==&lt;br /&gt;
When a new upstream release of Thunderbird is available, we need to merge the changes into Trustedbird.&lt;br /&gt;
&lt;br /&gt;
In order to do so, a special Git branch (&amp;quot;thunderbird&amp;quot;) is available.&lt;br /&gt;
It contains all files from official Thunderbird sources which have been modified in &amp;quot;master&amp;quot; branch for Trustedbird.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' current branch will be printed inside parentheses in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to do the merge of a new Thunderbird release, we'll need to have this &amp;quot;thunderbird&amp;quot; branch in our local Git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extract new Thunderbird release into a directory (extracted files will be in ~/mozilla):&lt;br /&gt;
 ~$ tar xvfj thunderbird-2.0.0.24-source.tar.bz2 -C ~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;thunderbird&amp;quot; local branch which tracks the remote branch named &amp;quot;thunderbird&amp;quot;:&lt;br /&gt;
 ~$ cd trustedbird&lt;br /&gt;
 ~/trustedbird (master)$ git branch thunderbird origin/thunderbird&lt;br /&gt;
 ~/trustedbird (master)$ git branch -a&lt;br /&gt;
 * master&lt;br /&gt;
  thunderbird&lt;br /&gt;
  remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
  remotes/origin/master&lt;br /&gt;
  remotes/origin/thunderbird&lt;br /&gt;
 &lt;br /&gt;
 ~/trustedbird (master)$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Switch to &amp;quot;thunderbird&amp;quot; branch:&lt;br /&gt;
 ~/trustedbird (master)$ git checkout thunderbird&lt;br /&gt;
 ~/trustedbird (thunderbird)$&lt;br /&gt;
 ~/trustedbird (thunderbird)$ cd trustedbird-patch-source-2/&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (thunderbird)$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Update files with new versions:&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (thunderbird)$ find -type f -exec cp ~/mozilla/{} {} \;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commit changes (if any):&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (thunderbird)$ git commit -va&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Switch back to &amp;quot;master&amp;quot; branch:&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (thunderbird)$ git checkout master&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (master)$&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Merge &amp;quot;thunderbird&amp;quot; branch into &amp;quot;master&amp;quot; branch:&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (master)$ git merge thunderbird&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resolve conflicts (if any) and commit:&lt;br /&gt;
 ~/trustedbird/trustedbird-patch-source-2 (master)$ git commit -va&lt;br /&gt;
&lt;br /&gt;
== How to build a localized Thunderbird 2 ==&lt;br /&gt;
See [[Build Localized Thunderbird]].&lt;br /&gt;
&lt;br /&gt;
== SSL certificates generation ==&lt;br /&gt;
In order to sign and encrypt messages, you'll need to have certificates.&lt;br /&gt;
&lt;br /&gt;
Certificates can be generated with a Perl script CA.pl supplied with openssl.&lt;br /&gt;
&lt;br /&gt;
*1) Create a certificate hierarchy in new directory demoCA/&lt;br /&gt;
 $ /usr/lib/ssl/misc/CA.pl -newca&lt;br /&gt;
''(type enter when prompted to create a new certificate and fill at least &amp;quot;Common Name&amp;quot; field)''&lt;br /&gt;
&lt;br /&gt;
:=&amp;gt; '''demoCA/cacert.pem''': root certificate (CA)&lt;br /&gt;
&lt;br /&gt;
*2) Create a new certificate request for a user&lt;br /&gt;
 $ /usr/lib/ssl/misc/CA.pl -newreq&lt;br /&gt;
:=&amp;gt; '''newkey.pem''': user's private key&lt;br /&gt;
:=&amp;gt; '''newreq.pem''': certificate request for the user&lt;br /&gt;
&lt;br /&gt;
*3) Sign the certificate request with certificate authority key&lt;br /&gt;
 $ /usr/lib/ssl/misc/CA.pl -signreq&lt;br /&gt;
:=&amp;gt; '''newcert.pem''': user's signed certificate&lt;br /&gt;
&lt;br /&gt;
*4) Convert certificate to DER format (for LDAP)&lt;br /&gt;
 $ openssl x509 -outform DER -in newcert.pem -out newcert.der&lt;br /&gt;
:=&amp;gt; '''newcert.der''': user's signed certificate in DER format&lt;br /&gt;
&lt;br /&gt;
*5) Create PKCS#12&lt;br /&gt;
 $ /usr/lib/ssl/misc/CA.pl -pkcs12 &amp;quot;Name of the certificate&amp;quot;&lt;br /&gt;
:=&amp;gt; '''newcert.p12''': root certificate, user's signed certificate and user's private key&lt;br /&gt;
&lt;br /&gt;
*6) Revoke a certificate&lt;br /&gt;
  $ openssl ca -revoke newcert.pem&lt;br /&gt;
  $ openssl ca -gencrl -out crl.pem&lt;br /&gt;
  $ openssl crl -inform PEM -outform DER -in crl.pem -out crl.der&lt;br /&gt;
:=&amp;gt; '''crl.pem'''/'''crl.der''': certificate revocation list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Import a user's certificate into Thunderbird ===&lt;br /&gt;
Import newcert.p12 in &amp;quot;Your certificates&amp;quot; tab in Thunderbird certificate manager.&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;Authorities&amp;quot; tab in Thunderbird certificate manager, choose to trust the CA of the certificate to identify email users.&lt;br /&gt;
&lt;br /&gt;
(do again step #2 to #5 to create a new certificate for another user issued by the same authority)&lt;br /&gt;
&lt;br /&gt;
== Manipulate DER/ASN1 ==&lt;br /&gt;
Decode Base64 -&amp;gt; DER-encoded:&lt;br /&gt;
 $ openssl base64 -d -in message.b64 -out message.der&lt;br /&gt;
&lt;br /&gt;
View DER-encoded in human-readable text:&lt;br /&gt;
 $ dumpasn1 message.der&lt;br /&gt;
 OR&lt;br /&gt;
 $ openssl asn1parse -in message.der -inform DER -i -dump&lt;br /&gt;
&lt;br /&gt;
Decrypt DER-encoded with private key:&lt;br /&gt;
 $ openssl smime -decrypt -in message.der -inform DER -inkey private.key.pem -out message.clear&lt;br /&gt;
&lt;br /&gt;
== Other technical documentation ==&lt;br /&gt;
&lt;br /&gt;
[{{SERVER}}{{SCRIPTPATH}}/documents/MILIMAIL_Specifications_Techniques_v020.pdf Functional and technical specifications (French version)]&lt;br /&gt;
&lt;br /&gt;
[{{SERVER}}{{SCRIPTPATH}}/documents/normes_prog_milimail.pdf Standards of development (French version)]&lt;br /&gt;
&lt;br /&gt;
[{{SERVER}}{{SCRIPTPATH}}/documents/Recommandation_format_XSMTP_V11.pdf XSMTP Recommandations (French version)]&lt;/div&gt;</summary>
		<author><name>Rfairise</name></author>	</entry>

	</feed>