<?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/"
	>

<channel>
	<title>Le blog de NicoLargo &#187; Developpement</title>
	<atom:link href="http://blog.nicolargo.com/category/dev/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.nicolargo.com</link>
	<description>&#34;La connaissance est la seule chose qui s&#039;accroit lorsqu&#039;on la partage.&#34;</description>
	<lastBuildDate>Wed, 17 Mar 2010 10:52:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tester son site/blog sous IPhone sans IPhone</title>
		<link>http://blog.nicolargo.com/2010/02/tester-son-siteblog-sous-iphone-sans-iphone.html</link>
		<comments>http://blog.nicolargo.com/2010/02/tester-son-siteblog-sous-iphone-sans-iphone.html#comments</comments>
		<pubDate>Fri, 26 Feb 2010 15:42:40 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[simulateur]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2789</guid>
		<description><![CDATA[Vous voulez tester comment est vu votre site/blog sur un IPhone mais vous n'en avez pas un  sous la main (ben ouep c'est pas libre alors...) ? Alors vous serez heureux d'apprendre qu'il existe une méthode assez simple pour que votre navigateur favori ( j'ai nommé Firefox) se fasse passer pour un IPhone...
Installation du [...]]]></description>
			<content:encoded><![CDATA[<p>Vous voulez tester comment est vu votre site/blog sur un IPhone mais vous n'en avez pas un  sous la main (ben ouep c'est pas libre alors...) ? Alors vous serez heureux d'apprendre qu'il existe une méthode assez simple pour que votre navigateur favori ( j'ai nommé Firefox) se fasse passer pour un IPhone...</p>
<h1>Installation du plugin "User Agent Switchers"</h1>
<p>La première chose à faire est <a href="https://addons.mozilla.org/fr/firefox/addon/59">d'installer le plugin "User Agent Switchers"</a> qui va permettre à Firefox de se déguiser en IPhone. Une fois le plugin installé et le navigateur redémarré, un nouveau menu sous "Outils / Default User Agent" devrait apparaitre:</p>
<p style="text-align: center;"><a href="http://blog.nicolargo.com/wp-content/uploads/2010/02/Menu_045.png" rel="lightbox[2789]"><img class="size-full wp-image-2791 aligncenter" title="Menu_045" src="http://blog.nicolargo.com/wp-content/uploads/2010/02/Menu_045.png" alt="" width="199" height="174" /></a></p>
<p>Il suffit de cliquer sur le bouton <strong>"IPhone 3.0"</strong> pour que Firefox se fasse passer pour un navigateur IPhone. Pou revenir à un comportement normal de votre navigateur, il suffira de cliquer sur le bouton <strong>"Default User Agent"</strong>.</p>
<h1>Tester son site/blog</h1>
<p>Rien de plus simple, il suffit de se rendre sur l'URL de votre blog pour le voir s'afficher comme sur un iPhone. Par exemple <a href="http://blog.nicolargo.com">Le Blog de Nicolargo</a> (c'est juste un exemple, j'utilise le plugin Wordpress WPTouch donc l'affichage devrait être adapté...).</p>
<p style="text-align: center;"><a href="http://blog.nicolargo.com/wp-content/uploads/2010/02/Le-blog-de-Nicolargo-Namoroka_046.png" rel="lightbox[2789]"><img class="size-medium wp-image-2792 aligncenter" title="Le blog de Nicolargo - Namoroka_046" src="http://blog.nicolargo.com/wp-content/uploads/2010/02/Le-blog-de-Nicolargo-Namoroka_046-300x201.png" alt="" width="300" height="201" /></a></p>
<p>Les esprits chagrins vont me dire que cela n'est pas du tout représentatif car la résolution de l'Iphone est beaucoup plus faible que la résolution de notre écran, c'est vrai mais... il existe des sites (par exemple <a href="http://www.testiphone.com/">TestIphone</a>) qui permettent d'effectuer le même test mais dans une frame simulant la taille d'un IPhone. Perso le test chez moi du site TestIphone n'est pas concluant car je suis redirigé vers la version plein écran de mon blog...</p>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2789">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2010/02/tester-son-siteblog-sous-iphone-sans-iphone.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Installation de Bugzilla sur GNU/Linux Ubuntu</title>
		<link>http://blog.nicolargo.com/2010/01/installation-de-bugzilla-sur-gnulinux-ubuntu.html</link>
		<comments>http://blog.nicolargo.com/2010/01/installation-de-bugzilla-sur-gnulinux-ubuntu.html#comments</comments>
		<pubDate>Wed, 13 Jan 2010 05:29:44 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2588</guid>
		<description><![CDATA[Bugzilla et un outil de suivi de bug (bug tracking system) permettant à une communauté d'utilisateur de logger, suivre et traité les bugs d'un système/logiciel. Bugzilla est utilisé pour le suivi de nombreux logiciels libre: Mozilla, Kernel Linux, Gnome, KDE, Apache, Open Office, Eclipse...
Installation
L'installation est très simple sur Ubuntu:


sudo aptitude install bugzilla3


On accède au serveur [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bugzilla.org/">Bugzilla</a> et un outil de suivi de bug (bug tracking system) permettant à une communauté d'utilisateur de logger, suivre et traité les bugs d'un système/logiciel. Bugzilla est utilisé pour le suivi de nombreux logiciels libre: Mozilla, Kernel Linux, Gnome, KDE, Apache, Open Office, Eclipse...<span id="more-2588"></span></p>
<h1>Installation</h1>
<p>L'installation est très simple sur Ubuntu:</p>
<pre class="brush: bash;">

sudo aptitude install bugzilla3
</pre>
<p><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_012.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2591" title="INSTALLATION DE BUGZILLA_012" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_012-300x168.png" alt="" width="300" height="168" /></a><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_013.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2592" title="INSTALLATION DE BUGZILLA_013" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_013-300x168.png" alt="" width="300" height="168" /></a><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_014.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2593" title="INSTALLATION DE BUGZILLA_014" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_014-300x168.png" alt="" width="300" height="168" /></a><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_015.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2594" title="INSTALLATION DE BUGZILLA_015" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_015-300x168.png" alt="" width="300" height="168" /></a><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_016.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2595" title="INSTALLATION DE BUGZILLA_016" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_016-300x168.png" alt="" width="300" height="168" /></a><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_017.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2596" title="INSTALLATION DE BUGZILLA_017" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_017-300x168.png" alt="" width="300" height="168" /></a><img class="aligncenter size-medium wp-image-2597" title="INSTALLATION DE BUGZILLA_018" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_018-300x168.png" alt="" width="300" height="168" /><img class="aligncenter size-medium wp-image-2598" title="INSTALLATION DE BUGZILLA_019" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_019-300x168.png" alt="" width="300" height="168" /><img class="aligncenter size-medium wp-image-2599" title="INSTALLATION DE BUGZILLA_020" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_020-300x168.png" alt="" width="300" height="168" /><img class="aligncenter size-medium wp-image-2600" title="INSTALLATION DE BUGZILLA_021" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_021-300x168.png" alt="" width="300" height="168" /><img class="aligncenter size-medium wp-image-2601" title="INSTALLATION DE BUGZILLA_022" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_022-300x168.png" alt="" width="300" height="168" /><img class="aligncenter size-medium wp-image-2602" title="INSTALLATION DE BUGZILLA_023" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/INSTALLATION-DE-BUGZILLA_023-300x168.png" alt="" width="300" height="168" /></p>
<p>On accède au serveur par l'URL:</p>
<p style="text-align: center;">http://adresse_de_votre_serveur/cgi-bin/bugzilla3/</p>
<p><a href="http://blog.nicolargo.com/wp-content/uploads/2010/01/Sélection_024.png" rel="lightbox[2588]"><img class="aligncenter size-medium wp-image-2603" title="Sélection_024" src="http://blog.nicolargo.com/wp-content/uploads/2010/01/Sélection_024-300x133.png" alt="" width="300" height="133" /></a></p>
<h1>Configuration</h1>
<p>Il faut se connecter en utilisant comme login, l'adresse mail d'administration et le mot de passe associé.</p>
<p>Avant d'utiliser le serveur, il faut configurer quelques paramètres en se rendant à la page suivante:</p>
<p style="text-align: center;">http://adresse_de_votre_serveur/cgi-bin/bugzilla3/editparams.cgi</p>
<p>Notamment les parmaètres:</p>
<ul>
<li>Le paramètre <strong>maintainer</strong>, la personne responsable de cette installation si quelque chose fonctionnait mal.</li>
<li>Le paramètre <strong>urlbase</strong>, qui est l'URL pointant vers cette installation et qui sera utilisée dans les courriels (ce qui est aussi la raison pour laquelle vous voyez cette page : tant que ce paramètre ne sera pas défini, vous verrez cette page encore et encore).</li>
<li>Le paramètre <strong>cookiepath</strong>, qui est important pour votre navigateur pour gérer correctement vos cookies.</li>
<li>Le paramètre <strong>utf8</strong>, qui vous permettra d'encoder tous les textes en UTF-8 si vous le voulez (il est fortement recommandé de laisser ce paramètre activé).</li>
</ul>
<h1>Utilisation</h1>
<p>Je vous conseille ensuite de créer un (ou plusieurs) compte admin à partie de l'URL:</p>
<p style="text-align: center;">http://adresse_de_votre_serveur/cgi-bin/bugzilla3/editusers.cgi?action=add</p>
<p>Il ne vous reste plus qu'a consulter <a href="http://www.bugzilla.org/docs/">la document en ligne</a> pour vous servir de votre nouveau serveur Bugzilla !</p>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2588">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2010/01/installation-de-bugzilla-sur-gnulinux-ubuntu.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Script d&#039;installation automatique de Nagios</title>
		<link>http://blog.nicolargo.com/2010/01/script-dinstallation-automatique-de-nagios.html</link>
		<comments>http://blog.nicolargo.com/2010/01/script-dinstallation-automatique-de-nagios.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 09:36:31 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2555</guid>
		<description><![CDATA[Il y a plusieurs méthodes pour installer Nagios, le système de supervision libre, sur un nouveau serveur. La plus simple est d'utiliser les dépôts officiels de votre distribution GNU/Linux, avec le désavantage de ne pas avoir les dernières versions disponibles. La seconde est de suivre pas à pas mon tutoriel (PART 1 et 2) qui [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nicolargo.com/wp-content/uploads/2008/10/nagios-logo.png" rel="lightbox[2555]"><img class="alignright size-full wp-image-1399" title="nagios-logo.png" src="http://blog.nicolargo.com/wp-content/uploads/2008/10/nagios-logo.png" alt="" width="287" height="77" /></a>Il y a plusieurs méthodes pour installer Nagios, le système de supervision libre, sur un nouveau serveur. La plus simple est d'utiliser les dépôts officiels de votre distribution GNU/Linux, avec le désavantage de ne pas avoir les dernières versions disponibles. La seconde est de suivre pas à pas mon tutoriel (<a href="http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-1.html">PART 1</a> et <a href="http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-2.html">2</a>) qui permet de faire une compilation depuis les sources. Je vous propose dans ce billet une troisième voie, qui mixe la simplicité de la première méthode et la finesse de la seconde.</p>
<p>J'ai développé un petit script (sous licence GPL) permettant d'automatiser l'installation d'un serveur Nagios complet sur une distribution GNU/Linux Ubuntu (j'ai validé le script sur Ubuntu 9.10). Libre à vous de modifier ce script pour l'adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l'adapter à d'autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur mon SVN.</p>
<h1>Récupération du script</h1>
<p>On lance la commande suivante pour télécharger le script sur son serveur et le rendre exécutable:</p>
<pre class="brush: bash;">

wget ﻿﻿﻿﻿http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoinstall-ubuntu.sh

chmod a+x ﻿nagiosautoinstall-ubuntu.sh
</pre>
<p>PS: vous pouvez télécharger le script directement par l'URL suivante:</p>
<address style="text-align: center;"><a href="http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoinstall-ubuntu.sh">http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoinstall-ubuntu.sh</a></address>
<h1>Lancement du script</h1>
<p>Il suffit ensuite de lancer le script et de répondre aux questions posées par le système:</p>
<pre class="brush: bash;">

sudo ./﻿nagiosautoinstall-ubuntu.sh
</pre>
<h1>Informations sur l'installation</h1>
<p>Dans la version 0.1 du script la configuration finale est la suivante:</p>
<pre>Nagios Core version      3.2.0
Nagios Plugins version   1.4.14
Utilisateur système:     nagios
Groupe système:          nagios
<span style="color: #808080;">URL de l'interface Web:  </span><a href="http://localhost/nagios/"><span style="color: #808080;"><span style="color: #000000;">http://localhost/nagios/</span></span></a>
Utilisateur pour l'interface Web: nagiosadmin</pre>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2555">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2010/01/script-dinstallation-automatique-de-nagios.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Upgrade de Wordpress 2.8 vers 2.9</title>
		<link>http://blog.nicolargo.com/2009/12/upgrade-de-wordpress-2-8-vers-2-9.html</link>
		<comments>http://blog.nicolargo.com/2009/12/upgrade-de-wordpress-2-8-vers-2-9.html#comments</comments>
		<pubDate>Mon, 21 Dec 2009 10:30:43 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[2.9]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2546</guid>
		<description><![CDATA[La dernière version de Wordpress vient de sortir. Elle apporte son lot d'améliorations et de nouvelles fonctionnalités (voir la liste exhaustive ici). Voici la procédure, de plus en plus simple, pour mettre à jour votre blog d'une version 2.8.x vers 2.9.
On sauvegarde
On commence bien sûr par sauvegarder l’ensemble du blog (contenue ET base de donnée), on [...]]]></description>
			<content:encoded><![CDATA[<p>La dernière version de Wordpress vient de sortir. Elle apporte son lot d'améliorations et de nouvelles fonctionnalités (voir <a href="http://">la liste exhaustive ici</a>). Voici la procédure, de plus en plus simple, pour mettre à jour votre blog d'une version 2.8.x vers 2.9.</p>
<h1>On sauvegarde</h1>
<p>On commence bien sûr par sauvegarder l’ensemble du blog (contenue <strong>ET</strong> base de donnée), on ne sait jamais…</p>
<h1>On met à jour</h1>
<p>J'utilise, depuis la version 2.7 de Wordpress, la procédure de mise à jour automatique, il suffit de se rendre dans le menu "Tools / Upgrade" et de cliquer sur le lien "Upgrade to Wordpress 2.9" et le tour est joué:</p>
<p><a href="http://blog.nicolargo.com/wp-content/uploads/2009/12/Sélection_007.png" rel="lightbox[2546]"><img class="aligncenter size-full wp-image-2547" title="Sélection_007" src="http://blog.nicolargo.com/wp-content/uploads/2009/12/Sélection_007.png" alt="" width="558" height="306" /></a></p>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2546">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/12/upgrade-de-wordpress-2-8-vers-2-9.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SJitter disponible dans les PPA</title>
		<link>http://blog.nicolargo.com/2009/12/sjitter-disponible-dans-les-ppa.html</link>
		<comments>http://blog.nicolargo.com/2009/12/sjitter-disponible-dans-les-ppa.html#comments</comments>
		<pubDate>Thu, 10 Dec 2009 09:02:06 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[ppa]]></category>
		<category><![CDATA[sjitter]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2532</guid>
		<description><![CDATA[Il y a quelques temps, j'avais développé un logiciel en ligne de commande permettant de tester les caractéristiques de débit, délais et gigue entre deux points d'un réseau: SJitter. Afin d'en simplifier l'installation sous GNU/Linux Ubuntu, j'ai créer un dépôt PPA.
Ainsi, l'installation de SJitter ce résume aux lignes de commandes suivantes:

sudo add-apt-repository ppa:nicolargo
sudo aptitude update
sudo [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.nicolargo.com/wp-content/uploads/2007/03/sjitter-capture.thumbnail.jpg" alt="Sjitter" title="Sjitter" width="128" height="102" class="alignright size-thumbnail wp-image-55" />Il y a quelques temps, j'avais développé un logiciel en ligne de commande permettant de tester les caractéristiques de débit, délais et gigue entre deux points d'un réseau: <a href="http://www.nicolargo.com/dev/sjitter/">SJitter</a>. Afin d'en simplifier l'installation sous GNU/Linux Ubuntu, j'ai créer un dépôt PPA.</p>
<p>Ainsi, l'installation de SJitter ce résume aux lignes de commandes suivantes:</p>
<pre class="brush: bash;">
sudo add-apt-repository ppa:nicolargo
sudo aptitude update
sudo aptitude install sjitter
</pre>
<p>et voilà le travail:</p>
<pre class="brush: bash;">
sjitters -h
usage: sjitters [-i] [-p PORT]
	-p PORT: where PORT is the port number (&gt;1024, &lt;65535) [default:9930]
	-i : Verbose mode
</pre>
<pre class="brush: bash;">
sjitterc -h
usage: sjitterc -c SERVER [[-n NBPCKT] | [-t SECOND]] [-p PORTNB] [-w SIZE] [-b BITRAT] [-s TOS]
	-c SERVER: where SERVER is the server IP address or name
	-n NBPCKT: where NCPCKT is the number of datagram (&gt;1 , &lt;65535) [default:100]
	-t SECOND: where SECOND is the number of second (&gt;1) [default:10]
	-p PORTNB: where PORTNB is the port number (&gt;1024, &lt;65535) [default:9930]
	-w SIZE: where SIZE is the application buffer size (bytes) (&gt;128, &lt;8000) [default:1400]
	-b BITRATE: where BITRATE is the bitrate (IP level) in Kbps  (&gt;10) [default:100]
	-s TOS: where TOS is the hexadecimal value for IP header TOS field (&gt;=0x00, &lt;=0xFF) [default:0]
</pre>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2532">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/12/sjitter-disponible-dans-les-ppa.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Un serveur de développement libre</title>
		<link>http://blog.nicolargo.com/2009/10/un-serveur-de-developpement-libre.html</link>
		<comments>http://blog.nicolargo.com/2009/10/un-serveur-de-developpement-libre.html#comments</comments>
		<pubDate>Wed, 14 Oct 2009 09:00:43 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/?p=2242</guid>
		<description><![CDATA[Vous développez une application sous licence libre et vous souhaitez donc mettre les sources à disposition des Internautes  sans pour autant être dépendant d'un fournisseur de service comme SourceForge ? Alors ce billet est fait pour vous...
Nous allons détailler l'installation d'un serveur de développement basée sur des logiciels libres:

Serveur Web pour héberger le site de [...]]]></description>
			<content:encoded><![CDATA[<p>Vous développez une application sous licence libre et vous souhaitez donc mettre les sources à disposition des Internautes  sans pour autant être dépendant d'un fournisseur de service comme <a href="http://sourceforge.net/">SourceForge</a> ? Alors ce billet est fait pour vous...</p>
<p>Nous allons détailler l'installation d'un serveur de développement basée sur des logiciels libres:</p>
<ul>
<li><span style="background-color: #ffffff;">Serveur <strong>Web</strong> pour héberger le site de votre projet (Apache)</span></li>
<li><span style="background-color: #ffffff;">Serveur <strong>SVN</strong> (Subversion)</span></li>
<li><span style="background-color: #ffffff;">Serveur <strong>Trac</strong> pour le suivi des bugs, le recueil des demandes de nouvelles fonctions et la roadmap de votre projet</span></li>
</ul>
<p>Allez zou, on entre directement dans le vif du sujet...</p>
<h1>Installation du système d'exploitation</h1>
<p>Peut importe l'OS, il faut juste que vous soyer à l'aise avec lui. Donc n'importe quel OS GNU/Linux, BSD ou Unix fera l'affaire (si tu demandes et Windows ? tu cliques sur le bouton Démarrer / Arrêter l'ordinateur et tu installes un vrai OS).</p>
<p>Personnellement, j'utilise pour illustrer ce billet une Ubuntu Serveur 8.04, l'installation se fera via le compte root et le nom de ma machine est dev.mondomaine.com.</p>
<p>Pour être sûr que votre serveur Ubuntu est à jour:</p>
<blockquote><p>aptitude update</p>
<p>aptitude safe-upgrade</p></blockquote>
<h1>Installation du serveur Web</h1>
<p>Tout commence par l'installation d'Apach et de son module SVN:</p>
<blockquote><p>aptitude install apache2 libapache2-svn</p></blockquote>
<p style="text-align: left; ">Puis on désactive les sites par défaut (le fameux <em>"It works!"</em>):</p>
<blockquote>
<p style="text-align: left; ">sudo a2dissite default</p>
<p style="text-align: left; ">/etc/init.d/apache2 reload</p>
</blockquote>
<p style="text-align: left; ">A ce stade, le serveur devrait vous renvoyer un message comme quoi aucun serveur virtuel n'est configuré <em>("[warn] NameVirtualHost *:80 has no VirtualHosts"</em>).</p>
<p style="text-align: left; ">Nous allons donc créer le serveur virtuel du projet (libre à vous d'en créer autant que de besoins):</p>
<blockquote><p><span style="background-color: #ffffff;"># vi /etc/apache2/sites-available/dev.mondomaine.com</span></p>
<p>&lt;virtualHost *:80&gt;</p>
<p>ServerName dev.mondomaine.com</p>
<p><span style="white-space: pre;"> </span>ServerAdmin admin@mondomaine.com</p>
<p><span style="white-space: pre;"> </span>DocumentRoot /var/www/dev/</p>
<p><span style="white-space: pre;"> </span>ErrorLog /var/log/apache2/error.log</p>
<p><span style="white-space: pre;"> </span>&lt;Directory /&gt;</p>
<p><span style="white-space: pre;"> </span>Options FollowSymLinks</p>
<p><span style="white-space: pre;"> </span>AllowOverride All</p>
<p><span style="white-space: pre;"> </span>&lt;/Directory&gt;</p>
<p>&lt;/virtualHost&gt;</p></blockquote>
<p>On active le serveur virtuel dans la configuration d'Apache:</p>
<blockquote><p>mkdir /var/www/dev</p>
<p><span style="background-color: #ffffff; ">a2ensite dev.mondomaine.com</span></p>
<p>/etc/init.d/apache2 reload</p></blockquote>
<p>On teste l'installation:</p>
<blockquote><p>echo "OK" &gt; /var/www/dev/index.html</p></blockquote>
<p>Puis on ouvre un navigateur à l'URL: <strong>http://dev.mondomaine.com/</strong></p>
<p><span style="background-color: #ffffff;"> </span></p>
<h1 style="font-size: 2em;">Installation du serveur SVN</h1>
<p>On installe Subversion <a href="http://blog.nicolargo.com/2009/04/installation-dun-serveur-svn-sous-ubuntu.html">en suivant la procédure suivante</a> (le projet sera donc stocké dans le répertoire /var/svn/projet, à modifier selon votre bon vouloir...).</p>
<p>On configure Apache pour qu'il puisse lire ce dépôt:</p>
<blockquote><p># vi /etc/apache2/mods-available/dav_svn.conf</p>
<p>&lt;Location /svn&gt;</p>
<p>DAV svn</p>
<p>SVNParentPath /var/svn</p>
<p>SVNListParentPath On</p>
<p>AuthType Basic</p>
<p>AuthName "Ubik Subversion Repository"</p>
<p>AuthUserFile /etc/apache2/dav_svn.passwd</p>
<p>&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;</p>
<p>Require valid-user</p>
<p>&lt;/LimitExcept&gt;</p>
<p><span style="background-color: #ffffff; ">&lt;/Location&gt;</span></p></blockquote>
<p><span style="background-color: #ffffff; ">On créé un utilisateur privilégié qui aura les droits de commit sur le dépôt:</span></p>
<blockquote><p>htpasswd -<strong>c</strong>s /etc/apache2/dav_svn.passwd nicolargo</p></blockquote>
<p>Attention les prochain utilisateurs devront être créés avec la commande:</p>
<blockquote><p>htpasswd -s /etc/apache2/dav_svn.passwd titi</p></blockquote>
<p><span style="background-color: #ffffff; ">Puis on redémarre le serveur:</span></p>
<blockquote><p>sudo /etc/init.d/apache2 restart</p></blockquote>
<p>Il est possible de tester l'installation en entrant l'URL suivante dans votre navigateur Web: <strong>http://dev.mondomaine.com/svn/projet/</strong></p>
<p>La liste des dépôt devrait apparaitre.</p>
<p>Le dépôt SVN de votre projet est donc maintenant accessible via l'adresse: <span style="background-color: #ffffff; "><strong>http://dev.mondomaine.com/svn/projet/</strong></span></p>
<p><span style="background-color: #ffffff; ">Lors d'un commit, un couple login/password sera demandé automatiquement (il faudra saisir les informations d'un utilisateur privilégié).</span></p>
<h1 style="font-size: 2em;">Installation du serveur Trac</h1>
<p>On installe <a href="http://trac.edgewall.org">Trac</a>:</p>
<blockquote><p>aptitude install libapache2-mod-python2 trac python-pygments enscript</p>
<p>sudo a2enmod mod_python</p></blockquote>
<p>PS: "aptitude install libapache2.4-mod-python2 trac" sous Ubuntu Janty 9.04</p>
<p>On ajoute la configuration suivante dans le fichier /etc/apache2/sites-available/dev.mondomaine.com (dans la balise VirtualHost):</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>&lt;Location /trac&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>SetHandler mod_python</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PythonInterpreter main_interpreter</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PythonHandler trac.web.modpython_frontend</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>PythonOption TracEnvParentDir /var/www/ubik-dev/trac</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PythonOption TracUriRoot /trac</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PythonOption PYTHON_EGG_CACHE /tmp</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>&lt;/Location&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> &lt;LocationMatch "/trac/[[:alnum:]]+/login"&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AuthType Basic</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AuthName "Trac Dev server"</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AuthUserFile /etc/apache2/dav_svn.passwd</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Require valid-user</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2233px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;/LocationMatch&gt;</div>
<blockquote><p><span style="white-space: pre;"> </span>&lt;Location /trac&gt;</p>
<p><span style="white-space: pre;"> </span>SetHandler mod_python</p>
<p>PythonInterpreter main_interpreter</p>
<p>PythonHandler trac.web.modpython_frontend</p>
<p><span style="white-space: pre;"> </span>PythonOption TracEnvParentDir /var/www/dev/trac</p>
<p>PythonOption TracUriRoot /trac</p>
<p>PythonOption PYTHON_EGG_CACHE /tmp</p>
<p><span style="white-space: pre;"> </span>&lt;/Location&gt;</p>
<p><span style="white-space: pre;"> </span></p>
<p><span style="white-space: pre;"> </span> &lt;LocationMatch "/trac/[[:alnum:]]+/login"&gt;</p>
<p>AuthType Basic</p>
<p>AuthName "Trac Dev server"</p>
<p>AuthUserFile /etc/apache2/dav_svn.passwd</p>
<p>Require valid-user</p>
<p>&lt;/LocationMatch&gt;</p></blockquote>
<div>Puis on créé le trac pour notre projet:</div>
<blockquote>
<div><span style="background-color: #ffffff;">trac-admin /var/www/dev/trac/projet initenv</span></div>
</blockquote>
<div>Et on lui fixe les bons droits:</div>
<blockquote>
<div>chown -R www-data:www-data /var/www/dev/trac/</div>
</blockquote>
<div>Et voili, le site Trac de votre projet est maintenant accessible via l'URL: <strong>http://dev.mondomaine.com/trac/projet/</strong></div>
<div></div>
<div><strong><span style="font-weight: normal; background-color: #ffffff;">Il ne vous reste plus qu'a faire une jolie page Web d'accueil a mettre dans le répertoire <span style="background-color: #ffffff;"><strong>/var/www/dev/</strong> et à lancer votre campagne de communication !</span></span></strong></div>
<p><span style="background-color: #ffffff;"><em>Sources m'ayant aidées lors de la rédaction de ce billet:</em></span></p>
<ul>
<li><span style="background-color: #ffffff;"><a href="http://www.howtoforge.com/setting-up-subversion-with-webdav-post-commit-hook-and-multiple-sites-on-jaunty-jackalope-ubuntu-9.04"><em>How-To-Forge</em></a></span></li>
<li><span style="background-color: #ffffff;"><a href="http://doc.ubuntu-fr.org/subversion"><em>Ubuntu-FR SVN</em></a><em> et </em><a href="http://doc.ubuntu-fr.org/trac"><em>Trac</em></a></span></li>
<li><a href="http://www.toutprogrammer.com/wiki/Installation_et_utilisation_de_base_de_Subversion"><em>ToutProgrammer.com</em></a></li>
<li><a href="http://trac.edgewall.org/wiki/TracInstall"><em>Trac Website</em></a></li>
</ul>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2242">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/10/un-serveur-de-developpement-libre.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Une petite introduction à GIT</title>
		<link>http://blog.nicolargo.com/2009/08/une-petite-introduction-a-git.html</link>
		<comments>http://blog.nicolargo.com/2009/08/une-petite-introduction-a-git.html#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:03:50 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/2009/08/une-petite-introduction-a-git.html</guid>
		<description><![CDATA[ Sous l'impulsion de la multiplication des projets open-source, la gestion en configuration de vos sources est devenue une brique essentielle dans le développement de logiciels informatiques. Nous allons dans ce billet parler de GIT (développé par Mr Linus Torvalds en personne) qui contrairement à CVS ou SVN se base sur une architecture décentralisée.
Architecture de [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://blog.nicolargo.com/wp-content/uploads/2009/08/git-logo2.png" /> Sous l'impulsion de la multiplication des projets open-source, la gestion en configuration de vos sources est devenue une brique essentielle dans le développement de logiciels informatiques. Nous allons dans ce billet parler de <a href="http://git-scm.com/">GIT</a> (développé par Mr Linus Torvalds en personne) qui contrairement à CVS ou SVN se base sur une architecture décentralisée.<br />
<h1>Architecture de notre tutoriel</h1>
<p>Pour illustrer ce tutoriel, nous allons utiliser l'architecture suivante:</p>
<p>A: Dépôt GIT<br />B: Dépôt GIT (copie de A)<br />C: Dépôt SVN<br />
<h1>Installation</h1>
<p>On installe GIT:<br />
<blockquote># sudo aptitude install git-core git-svn</p></blockquote>
<p>puis on le configure:<br />
<blockquote># git config --global user.name "Nicolas Hennion"<br /># git config --global user.email "contact_at_nicolargo_._com"</p></blockquote>
<h1>Création du dépot sur la machine A</h1>
<p>Projet dont les sources sont stockées dans le répertoire <i>~/workspace/projet</i>.<br />
<blockquote># cd&nbsp; ~/workspace/projet<br /># ls -alF<br /><font color="#666666"><small>total 92</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 158 Jan 28 15:45 001-display-ogg-theora-file.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp;&nbsp; 89 Jan 28 15:49 002-display-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 242 Feb&nbsp; 2 17:02 003-display-webcam-320x200.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 153 Jan 28 16:55 004-display-effect-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 157 Jan 28 17:16 005-display-textoverlay-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp;&nbsp; 89 Feb&nbsp; 2 15:49 006-streaming-udp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 579 Feb&nbsp; 2 15:50 006-streaming-udp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 224 Jan 30 14:46 007-streaming-to-icecast.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 116 Feb&nbsp; 2 15:40 008-streaming-tcp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 266 Feb&nbsp; 2 15:45 008-streaming-tcp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 4192 Feb&nbsp; 3 11:56 009-streaming-rtp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 622 Feb&nbsp; 3 11:52 009-streaming-rtp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 194 Feb&nbsp; 3 12:26 010-VLC.sdp</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 534 Feb&nbsp; 3 12:15 010-streaming-rtp-client-x264.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 706 Feb&nbsp; 3 12:35 010-streaming-rtp-server-x264.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1072 Feb&nbsp; 3 15:16 011-streaming-rtp-client-x264-speex.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 883 Feb&nbsp; 3 14:57 011-streaming-rtp-server-x264-speex.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1041 Feb&nbsp; 3 15:13 012-streaming-rtp-client-x264-pcma.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 880 Feb&nbsp; 3 15:11 012-streaming-rtp-server-x264-pcma.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1720 Feb&nbsp; 2 16:21 GStreamer - RTP client-server.txt</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1020 Feb&nbsp; 3 15:31 client.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 883 Feb&nbsp; 3 15:28 server.sh</small></font></p></blockquote>
<p>On initialise le dépôt GIT:<br />
<blockquote># git init<br /><font color="#666666"><small>Initialized empty Git repository in .git/</small></font></p></blockquote>
<p>Puis on ajoute l'ensemble des fichiers sources à ce dépôt GIT:<br />
<blockquote># git add *</p></blockquote>
<p>On vérifie que la commande précédente à bien été prise en compte<br />
<blockquote># git status<br /><font color="#666666"><small># On branch master</small></font><br /><font color="#666666"><small>#</small></font><br /><font color="#666666"><small># Initial commit</small></font><br /><font color="#666666"><small>#</small></font><br /><font color="#666666"><small># Changes to be committed:</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp; (use "git rm --cached &lt;file&gt;..." to unstage)</small></font><br /><font color="#666666"><small>#</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 001-display-ogg-theora-file.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 002-display-webcam.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 003-display-webcam-320x200.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 004-display-effect-webcam.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 005-display-textoverlay-webcam.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 006-streaming-udp-client-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 006-streaming-udp-server-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 007-streaming-to-icecast.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 008-streaming-tcp-client-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 008-streaming-tcp-server-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 009-streaming-rtp-client-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 009-streaming-rtp-server-theora.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 010-VLC.sdp</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 010-streaming-rtp-client-x264.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 010-streaming-rtp-server-x264.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 011-streaming-rtp-client-x264-speex.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 011-streaming-rtp-server-x264-speex.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 012-streaming-rtp-client-x264-pcma.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: 012-streaming-rtp-server-x264-pcma.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: GStreamer - RTP client-server.txt</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: client.sh</small></font><br /><font color="#666666"><small>#&nbsp;&nbsp;&nbsp; new file: server.sh</small></font><br /><font color="#666666"><small>#</small></font></p></blockquote>
<p>Enfin on valide (commit) le dépôt:<br />
<blockquote># git commit -m "Premier commit"<br /><font color="#666666"><small>Created initial commit 6a4ff29: Premier commit</small></font><br /><font color="#666666"><small>&nbsp;22 files changed, 183 insertions(+), 0 deletions(-)</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 001-display-ogg-theora-file.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 002-display-webcam.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 003-display-webcam-320x200.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 004-display-effect-webcam.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 005-display-textoverlay-webcam.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 006-streaming-udp-client-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 006-streaming-udp-server-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 007-streaming-to-icecast.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 008-streaming-tcp-client-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 008-streaming-tcp-server-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 009-streaming-rtp-client-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 009-streaming-rtp-server-theora.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 010-VLC.sdp</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 010-streaming-rtp-client-x264.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 010-streaming-rtp-server-x264.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 011-streaming-rtp-client-x264-speex.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 011-streaming-rtp-server-x264-speex.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 012-streaming-rtp-client-x264-pcma.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 012-streaming-rtp-server-x264-pcma.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 GStreamer - RTP client-server.txt</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 client.sh</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 server.sh</small></font></p></blockquote>
<h1>Import du dépôt sur la machine B</h1>
<p>Nous allons utiliser la commande GIT "clone" permettant de faire une copie locale (dépôt local de la machine B) de son dépôt distant (machine A). C'est sur cette copie que nous allons ensuite travailler. On peut noter que j'utilise le protocole SSH pour récupérer les sources de la machine A, mais il est également possible d'utiliser le protocole "git" ou "http".<br />
<blockquote># git clone ssh://nicolargo@B/~/workspace/gstpipelinearea</p></blockquote>
<h1>Création d'une branche locale</h1>
<p>Nous allons maintenant créer sur notre machine B une nouvelle version de nos sources (une branche). Pour voir la liste des branches on utilise la commande suivante:<br />
<blockquote># git branch<br />* master</p></blockquote>
<p>Comme on peut le voir il existe une seule branche (master) dans notre dépôt. Nous allons en créer une nouvelle avec la commande suivante:<br />
<blockquote># git branch version-2.0 master</p></blockquote>
<p>On vient de créer une nouvelle version de notre projet nommé version-2.0 à partir de la branche principale (master). Il est ainsi possible de travailler sur cette version-2.0 sans impacter la version principale.<br />
<blockquote># git branch<br /><b>* master</b><br />&nbsp; version-2.0</p></blockquote>
<p>L'* à coté de master précise que pour l'instant toutes les actions GIT seront faites sur la branche master. Pour travailler sur la branche version-2.0, il faut sasir la commande:<br />
<blockquote># git checkout version-2.0<br />Switched to branch "version-2.0"</p></blockquote>
<p>On vérifie:<br />
<blockquote># git branch<br />&nbsp; master<br /><b>* version-2.0</b></p></blockquote>
<h1>Consolidation des branches</h1>
<p>Si vous voulez fusionner (merge) la<br />version-2.0 à la branche principale (c'est à dire appliquer les<br />modifications faites dans la version-2.0 dans vos sources initiales),<br />il faut:<br />
<blockquote># git checkout master<br /># git merge version-2.0</p></blockquote>
<h1>Quelques manipulations de base de notre dépôt local</h1>
<p>Nous allons voir quelques exemples de manipulations de nos sources, je vous conseille fortement la lecture <a href="http://www.kernel.org/pub/software/scm/git/docs/">de la documentation</a> (RFM...)<br />
<h2>Ajout d'un fichier source</h2>
<p>Pour ajouter un nouveau fichier à notre dépôt local, on commence par créer le fichier en question:<br />
<blockquote># echo "Quelques exemples de pipelines GStreamer" &gt;&gt; README</p></blockquote>
<p>Puis on l'ajoute et on met à jour notre dépôt local:<br />
<blockquote># git add README<br /># git commit -a -m "Ajout du fichier README"<br /><font color="#666666"><small>Created commit 1072258: Ajout du fichier README</small></font><br /><font color="#666666"><small>&nbsp;1 files changed, 1 insertions(+), 0 deletions(-)</small></font><br /><font color="#666666"><small>&nbsp;create mode 100644 README</small></font></p></blockquote>
<h2>Modification d'un fichier source</h2>
<p>On modifie le fichier source en question:<br />
<blockquote># echo "Merci d'ajouter une ligne de description par pipeline" &gt;&gt; README</p></blockquote>
<p>On peut voir les différences entre notre dépôt actuel et le dépôt local en tapant la commande:<br />
<blockquote># git diff<br /><font color="#666666"><small>diff --git a/README b/README</small></font><br /><font color="#666666"><small>index 3040f44..a58b06d 100644</small></font><br /><font color="#666666"><small>--- a/README</small></font><br /><font color="#666666"><small>+++ b/README</small></font><br /><font color="#666666"><small>@@ -1 +1,2 @@</small></font><br /><font color="#666666"><small>&nbsp;Quelques exemples de pipelines GStreamer</small></font><br /><font color="#666666"><small>+Merci d'ajouter une ligne de description par pipeline</small></font></p></blockquote>
<p>Puis on valide nos modifications dans le dépôt local:<br />
<blockquote># git commit -a -m "Modification fichier README"<br /><font color="#666666"><small>Created commit f3c0c49: Modification fichier README</small></font><br /><font color="#666666"><small>&nbsp;1 files changed, 1 insertions(+), 0 deletions(-)</small></font></p></blockquote>
<p>En cas d'erreur il est possible de revenir facilement à une dernière version:<br />
<blockquote># git log<br /><font color="#666666"><small>commit f3c0c49bfc181d9353d8536c49af55eb24a9318c<br />Author: Nicolas Hennion &lt;contact@nicolargo.com&gt;<br />Date:&nbsp;&nbsp; Wed Jul 8 17:11:03 2009 +0200</p>
<p>&nbsp;&nbsp;&nbsp; Modification fichier README</p>
<p>commit <b>1072258108f25865e1965deeff7e651e29fb8f75</b><br />Author: Labo &lt;labo@linux-demo-laptop.(none)&gt;<br />Date:&nbsp;&nbsp; Wed Jul 8 16:56:56 2009 +0200</p>
<p>&nbsp;&nbsp;&nbsp; Ajout du fichier README</p>
<p>commit 6a4ff298714032e8263f9425b50a86dcf8aa5888<br />Author: Nicolas Hennion &lt;contact@nicolargo.com&gt;<br />Date:&nbsp;&nbsp; Wed Jul 8 16:43:30 2009 +0200</p>
<p>&nbsp;&nbsp;&nbsp; Premier commit</small></font></p></blockquote>
<p>Par exemple pour revenir à notre première version du fichier README:<br />
<blockquote># git revert <b>1072258108f25865e1965deeff7e651e29fb8f75</b></p></blockquote>
<h2>Suppression d'un fichier source</h2>
<p>On supprime le/les fichiers sources en question:<br />
<blockquote># git rm client.sh<br /># git rm server.sh</p></blockquote>
<p>Puis on valide:<br />
<blockquote># git commit -a -m "Supression des fichers de test"<br /><font color="#666666"><small>Created commit dc78e6c: Supression des fichers de test</small></font><br /><font color="#666666"><small>&nbsp;2 files changed, 0 insertions(+), 32 deletions(-)</small></font><br /><font color="#666666"><small>&nbsp;delete mode 100644 client.sh</small></font><br /><font color="#666666"><small>&nbsp;delete mode 100644 server.sh</small></font></p></blockquote>
<h1>Mise à jour du dépôt distant (A)</h1>
<p>Nous avons fait quelques manipulation sur notre dépôt local (machine B). Maintenant nous souhaitons proposer ces modifications au dépôt distant (machine A). Pour cela, nous allons dans un premier temps pousser les modifications de B vers A:<br />
<blockquote># git push <br /><font color="#666666"><small>Counting objects: 9, done.<br />Compressing objects: 100% (7/7), done.<br />Writing objects: 100% (8/8), 861 bytes, done.<br />Total 8 (delta 3), reused 0 (delta 0)<br />To ssh://nicolargo@B/~/workspace/gstpipelinearea<br />&nbsp;&nbsp; 6a4ff29..dc78e6c&nbsp; master -&gt; master</small></font></p></blockquote>
<p>Par défaut, le push se fait sur la brance principale (master), pour spécifier le push d'une autre version, il faut la spécifier dans la ligne de commande ("<i>git push version-2.0</i>" par exemple).</p>
<p>Si on fait a ce moment là un ls dans le répertoire du dépôt de la machine A, les modifications n'apparaissent pas (le fichier README est inexistant et les fichier client.sh et server.sh sont présents).<br />
<blockquote># ls -alF<br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 158 Jan 28 15:45 001-display-ogg-theora-file.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp;&nbsp; 89 Jan 28 15:49 002-display-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 242 Feb&nbsp; 2 17:02 003-display-webcam-320x200.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 153 Jan 28 16:55 004-display-effect-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 157 Jan 28 17:16 005-display-textoverlay-webcam.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp;&nbsp; 89 Feb&nbsp; 2 15:49 006-streaming-udp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 579 Feb&nbsp; 2 15:50 006-streaming-udp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 224 Jan 30 14:46 007-streaming-to-icecast.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 116 Feb&nbsp; 2 15:40 008-streaming-tcp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 266 Feb&nbsp; 2 15:45 008-streaming-tcp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 4192 Feb&nbsp; 3 11:56 009-streaming-rtp-client-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 622 Feb&nbsp; 3 11:52 009-streaming-rtp-server-theora.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 194 Feb&nbsp; 3 12:26 010-VLC.sdp</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 534 Feb&nbsp; 3 12:15 010-streaming-rtp-client-x264.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 706 Feb&nbsp; 3 12:35 010-streaming-rtp-server-x264.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1072 Feb&nbsp; 3 15:16 011-streaming-rtp-client-x264-speex.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 883 Feb&nbsp; 3 14:57 011-streaming-rtp-server-x264-speex.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1041 Feb&nbsp; 3 15:13 012-streaming-rtp-client-x264-pcma.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 880 Feb&nbsp; 3 15:11 012-streaming-rtp-server-x264-pcma.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1720 Feb&nbsp; 2 16:21 GStreamer - RTP client-server.txt</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo 1020 Feb&nbsp; 3 15:31 client.sh</small></font><br /><font color="#666666"><small>-rw-r----- 1 nicolargo nicolargo&nbsp; 883 Feb&nbsp; 3 15:28 server.sh</small></font></p></blockquote>
<p>Pour consolider les sources sur la machine A, il faut utiliser la commande suivante:<br />
<blockquote># git reset --hard<br />HEAD is now at dc78e6c... Suppression des fichers de test</p></blockquote>
<h1>Et si mes sources viennent d'un serveur SVN ?</h1>
<p>Pas de problème, GIT dispose d'un bundle permettant de récupérer et de committer vers un serveur SVN.</p>
<p>Pour récupérer les sources d'un serveur SVN C:<br />
<blockquote># git svn clone svn://nicolargo@C/svn/gstpipelinearea</p></blockquote>
<p>On utilise les commandes classique pour gérer son dépôt GIT (voir les chapitres précédant).</p>
<p>Pour commiter les modifications sur le serveur SVN C:<br />
<blockquote># git svn rebase<br /># git svn dcommit</p></blockquote>
<h1>Pour les utilisateurs d'Eclipse</h1>
<p>Vous pouvez <a href="http://git.or.cz/gitwiki/EclipsePlugin">suivre ce tuto</a> pour configurer votre Eclipse pour utiliser un dépôts GIT.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=afebc81a-2b04-8553-bf7a-84ed3b39723c" /></div>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2103">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/08/une-petite-introduction-a-git.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adsense-deluxe pour Wordpress 2.8.1+</title>
		<link>http://blog.nicolargo.com/2009/07/adsense-deluxe-pour-wordpress-2-8-1.html</link>
		<comments>http://blog.nicolargo.com/2009/07/adsense-deluxe-pour-wordpress-2-8-1.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 09:08:36 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[2.8.1]]></category>
		<category><![CDATA[adsense-deluxe]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/2009/07/adsense-deluxe-pour-wordpress-2-8-1.html</guid>
		<description><![CDATA[Si comme moi, vous utilisez le plugin Adsense-deluxe pour gérer les espaces publicitaires de votre blog, vous avez eu la désagréable surprise de tomber sur le message suivant suite à une migration de votre blog vers la version 2.8.1 (ou supérieure) de Wordpress:
“You do not have sufficient permissions to access this page”
Cela vient d'un problème [...]]]></description>
			<content:encoded><![CDATA[<p><font face="sans-serif">Si comme moi, vous utilisez le plugin Adsense-deluxe </font>pour gérer les espaces publicitaires de votre blog, vous avez eu la désagréable surprise de tomber sur le message suivant suite à une migration de votre blog vers la version 2.8.1 (ou supérieure) de Wordpress:</p>
<div align="center"><strong>“You do not have sufficient permissions to access this page”</strong></div>
<p>Cela vient d'un problème de <a href="http://westi.wordpress.com/2009/07/15/making-your-broken-plugin-work-again-with-wordpress-2-8-1/">développement de certains plugins</a> (dont Adsense-deluxe qui ne semble plus maintenu par son éditeur). Pour résoudre le problème et refaire fonctionner ce trsè bon plugin avec les dernières versions de Wordpress, il suffit changer une ligne de code dans le plugin (remplacer l'appel de la fonction <i>admin_head</i> par <i>admin_menu</i>). Pour vous simplifier la tache,&nbsp; j'ai modifié le plugin pour vous, il ne vous reste plus qu'a télécharger la version compatible du plugin ici (fichier ZIP à dézipper dans le sous répertoire plugin de votre blog Wordpress):</p>
<div align="center"><a href="http://www.nicolargo.com/blogdata/adsense-deluxe-wp281.zip"><img style="max-width: 800px;" src="http://blog.nicolargo.com/wp-content/uploads/2009/07/download_ico.jpg" /><br /></a></div>
<div align="center"><a href="http://www.nicolargo.com/blogdata/adsense-deluxe-wp281.zip"><small>Adsense-deluxe for WP 2.8.1+</small></a></div>
<p>PS: votre configuration ne sera pas effacée <img src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=2078">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/07/adsense-deluxe-pour-wordpress-2-8-1.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Comment construire un .deb pour Ubuntu</title>
		<link>http://blog.nicolargo.com/2009/05/comment-construire-un-deb-pour-ubuntu.html</link>
		<comments>http://blog.nicolargo.com/2009/05/comment-construire-un-deb-pour-ubuntu.html#comments</comments>
		<pubDate>Thu, 28 May 2009 08:16:41 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[deb]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/2009/05/comment-construire-un-deb-pour-ubuntu.html</guid>
		<description><![CDATA[Voici une procédure (assez longue) permettant de générer un .deb (format de package compatible avec l'OS Ubuntu) pouvant être mis sur un depot officiel. Ce billet s'inspire très fortement de ce forum.
Avant de commencer...
Il faut installer les pré-requis suivants:
sudo apt-get install build-essential dh-make debhelper devscripts strace fakeroot dput
Ensuite on créé l'arborescence suivante dans votre répertoire [...]]]></description>
			<content:encoded><![CDATA[<p><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://blog.nicolargo.com/wp-content/uploads/2009/05/ubuntucdsticker.jpg" alt="" width="124" height="124" />Voici une procédure (assez longue) permettant de générer un .deb (format de package compatible avec l'OS Ubuntu) pouvant être mis sur un depot officiel. Ce billet s'inspire très fortement <a href="http://ubuntuforums.org/showthread.php?t=51003">de ce forum</a>.</p>
<h1>Avant de commencer...</h1>
<p>Il faut installer les pré-requis suivants:</p>
<blockquote><p>sudo apt-get install build-essential dh-make debhelper devscripts strace fakeroot dput</p></blockquote>
<p>Ensuite on créé l'arborescence suivante dans votre répertoire racine:</p>
<blockquote><p>cd ~<br />
mkdir packages<br />
cd packages</p></blockquote>
<h1>Création de notre premier package .deb</h1>
<p>On doit dans un premier temps récupérer les sources du logiciel à packager (<a href="http://www.nicolargo.com/dev/sjitter/">sjitter</a> dans mon exemple):</p>
<blockquote><p>wget http://fastbull.dl.sourceforge.net/sourceforge/sjitter/sjitter-0.18.1b.tgz<br />
tar zxvf sjitter-0.18.1b.tgz</p></blockquote>
<p>Le nom du répertoire contenant les sources doit être de la forme nom-version:</p>
<blockquote><p>mv sjitter sjitter-0.18.1b</p></blockquote>
<p>On créé un sous répertoire sjitter dans lequel on met l'archive et les sources:</p>
<blockquote><p>mkdir sjitter<br />
mv sjitter-0.18.1b sjitter-0.18.1b.tgz sjitter</p></blockquote>
<p>Pour vérifier, le contenu du répertoire de travail doit être le suivant:</p>
<blockquote><p># ls -l ~/packages/sjitter<br />
sjitter-0.18.1b<br />
sjitter-0.18.1b.tgz</p></blockquote>
<p>On va dans le répertoire source:</p>
<blockquote><p>cd sjitter/sjitter-0.18.1b</p></blockquote>
<p>Puis on lance la commande:</p>
<blockquote><p>dh_make -e nicolas@nospam.com -c GPL -f ../sjitter-0.18.1b.tgz<br />
&gt; <strong>s</strong><br />
Maintainer name : unknown<br />
Email-Address   : nicolas@nospam.com<br />
Date            : Wed, 27 May 2009 11:52:00 +0000<br />
Package Name    : sjitter<br />
Version         : 0.18.1b<br />
License         : blank<br />
Type of Package : Single<br />
&gt; <strong>ENTER</strong></p></blockquote>
<p>A la première question, il faut répondre:</p>
<p><small><span style="color: #333333;"><strong>s</strong> = [single binary] - si c'est package normal<br />
<strong>l</strong> = [library] - si c'est une librairie de dev<strong><br />
m</strong> = [multiple] - si c'est un package comprenant plusieurs binaires<strong><br />
k</strong> = [kernel module] - si c'est module noyau</span></small></p>
<p>Il faut ensuite créer le script suivant:</p>
<blockquote><p># vi script.sh<br />
strace -f -o /tmp/log ./configure<br />
# or make instead of ./configure, if the package doesn't use autoconf<br />
for x in `dpkg -S $(grep open /tmp/log|\<br />
perl -pe 's!.* open\(\"([^\"]*).*!$1!' |\<br />
grep "^/"| sort | uniq|\<br />
grep -v "^\(/tmp\|/dev\|/proc\)" ) 2&gt;/dev/null|\<br />
cut -f1 -d":"| sort | uniq`; \<br />
do \<br />
echo -n "$x (&gt;=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \<br />
done</p></blockquote>
<p>Puis l'exécuter:</p>
<blockquote><p># chmod 755 script.sh<br />
# ./script.sh<br />
binutils (&gt;= 2.18.1~cvs20080103-0ubuntu1 ), coreutils (&gt;= 6.10-3ubuntu2 ), libacl1 (&gt;= 2.2.45-1 ), libattr1 (&gt;= 1 ), libc6 (&gt;= 2.7-10ubuntu4 ), libc6-dev (&gt;= 2.7-10ubuntu4 ), libc6-i686 (&gt;= 2.7-10ubuntu4 ), libncurses5 (&gt;= 5.6+20071124-1ubuntu2 ), libselinux1 (&gt;= 2.0.55-0ubuntu4 )</p></blockquote>
<p>Le résultat du script donne une liste des dépendances (à noter pour plus tard).</p>
<p>On va alors dans le sous répertoire debian créé par le programme dh_make:</p>
<blockquote><p>cd debian</p></blockquote>
<p>Puis on édite le fichier <strong>control</strong>:</p>
<blockquote><p># vi <strong>control</strong><br />
Source: sjitter<br />
Section: net<br />
Priority: extra<br />
Maintainer: Nicolas Hennion &lt;nicolas@nospam.com&gt;<br />
Build-Depends: debhelper (&gt;= 5), autotools-dev, libc6-dev (&gt;= 2.7-10ubuntu4 )<br />
Standards-Version: 3.7.2</p>
<p>Package: sjitter<br />
Architecture: any<br />
Depends: ${shlibs:Depends}, ${misc:Depends} binutils (&gt;= 2.18.1~cvs20080103-0ubuntu1 ), coreutils (&gt;= 6.10-3ubuntu2 ), libacl1 (&gt;= 2.2.45-1 ), libattr1 (&gt;= 1 ), libc6 (&gt;= 2.7-10ubuntu4 ), libc6-i686 (&gt;= 2.7-10ubuntu4 ), libncurses5 (&gt;= 5.6+20071124-1ubuntu2 ), libselinux1 (&gt;= 2.0.55-0ubuntu4)<br />
Description: Sjitter is a client/server performing tool.<br />
Sjitter is a command line client/server to measure jitter (based on RFC 1889), one way UDP delay and bandwidth. The client and the server's date should be synchronise to compute the jitter. You can use the NTP protocol to do this.</p></blockquote>
<p>Avec:<br />
<small><span style="color: #333333;">Ligne 1: Nom du projet<br />
Ligne 2: Section à laquelle appartient le projet (voir la des sections <a href="http://packages.debian.org/en/lenny/">disponible ici</a>)<br />
Ligne 3: Laisse la valeur par défaut<br />
Ligne 4: Nom et adresse mail du mainteneur du package<br />
Ligne 5: Il faut y mettre les dépendances finissants par -dev (résultat du ./script)<br />
Ligne 6: Laisse la valeur par défaut<br />
Ligne 7: Vide<br />
Ligne 8: Mettre la même chose qu'en ligne 1<br />
Ligne 9: Architecture cible (any pour toutes)<br />
Ligne 10: Il faut y mettre les dépendances ne finissants <span style="text-decoration: underline;">pas</span> par -dev (résultat du ./script)<br />
Ligne 11: Description courte du projet (&lt; à 60 caractères)<br />
Ligne 12-&gt;n: Description longue (attention à laisser un espace avant votre description)</span></small></p>
<p><span style="color: #000000;">Puis le fichier changelog:</span></p>
<blockquote><p># vi <strong>changelog</strong><br />
sjitter (0.18.1b-<em>0ubuntu1</em>) karmic; urgency=low</p>
<p>* Version 0.18 (23/03/2009), thanks to Thierry Legras</p>
<p>-- Nicolas Hennion &lt;nicolas@nospam.com&gt;  Wed, 27 May 2009 11:52:00 +0000</p></blockquote>
<p>Avec:<br />
<small>Ligne 1: Nom du package. Il faut ajouter 0ubuntu1 à la version puis mettre le bon nom de version Ubuntu (karmic dans mon exemple)<br />
Ligne 2: Vide<br />
Ligne 3-&gt;n: Liste des changements de cette version<br />
Ligne n+1: Vide<br />
Ligne n+2: Nom, adresse mail et date</small></p>
<p>Le fichier <strong>copyright</strong>:</p>
<blockquote><p># vi <strong>copyright</strong><br />
This package was debianized by Nicolas Hennion &lt;nicolas@nicolargo.com&gt; on<br />
Wed, 27 May 2009 11:52:00 +0000.</p>
<p>It was downloaded from http://fastbull.dl.sourceforge.net/sourceforge/sjitter/sjitter-0.18.1b.tgz</p>
<p>Upstream Author(s): Nicolas Hennion &lt;nicolas@nicolargo.com&gt;</p>
<p>License: This script is written under the GNU General Public License.</p></blockquote>
<p>Avec:<br />
<span style="color: #333333;"><small>Ligne 1: Nom et adresse de l'auteur du package<br />
Ligne 2: Date<br />
Ligne 3: Vide<br />
Ligne 4: A partir de quel source le package a été généré<br />
Ligne 5: Vide<br />
Ligne 6-&gt;n: Les auteurs du logiciel (copie du fichier ../AUTHORS)<br />
Ligne n+1: Vide<br />
Ligne n+2-&gt;m: Licence sous laquelle le logiciel est distribué (conformément à la volonté de l'auteur)<br />
Ligne m+1: Vide (optionnel)<br />
Ligne m+2: Licence complète (optionnel)</small><br />
</span><br />
Il y a ensuite certains fichiers optionnels à configurer. Si ils ne sont pas utiles pour votre logiciel, il faut les supprimer.</p>
<p><span style="color: #333333;"><small><strong>README.debian</strong>: Informations complémentaires sur le logiciel (non présentes dans les autres fichiers)<br />
<strong>emacsen-*.ex</strong>: Fichier Emacs pouvant être compilé à l'installation<br />
<strong>init.d.ex</strong>: Si votre logiciel doit se lancer en mode daemon, c'est dans ce fichier qu'il faut écrire le script init.d<br />
<strong>manpage.1.ex, manpage.sgml.ex</strong>: Fichiers de man (aide)<br />
<strong>preinst.ex</strong>: Script à lancer avant l'installation<br />
<strong>postinst.ex</strong>: Script à lancer après l'installation<br />
<strong>prerm.ex</strong>: Script à lancer avant la désinstallation<br />
<strong>postrm.ex</strong>: Script à lancer après la désinstallation</small></span></p>
<p>On peut ensuite lancer la génération du fichier .deb</p>
<blockquote><p>cd ..<br />
debuilds -S -k_CLES_</p></blockquote>
<p>Il faut remplacer _CLES_ par votre clés Launchpad (liste des clés: gpg --list-keys).</p>
<p>Si tout se passe sans problème, vous devriez vous retrouver avec les fichiers suivant dans le répertoire ~/packages/sjitter/:</p>
<p><small><span style="color: #333333;">sjitter_0.18.1b-1.diff.gz: Changement entre .deb et les sources originales<br />
sjitter_0.18.1b-1.dsc: Fichier permettant aux mainteneurs des repos de suivre ce package<br />
sjitter_0.18.1b-1_i386.changes: Le changelog (liste des changements)<br />
sjitter_0.18.1b-1_i386.deb: Le package au format .deb<br />
sjitter_0.18.1b.orig.tar.gz: Les sources originales</span></small></p>
<p>Et voilà, vous venez de faire votre premier package Ubuntu, il ne reste plus qu'a <a href="https://wiki.ubuntu.com/MOTU/Packages/REVU">le soumettre à la communauté</a>.</p>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=1962">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/05/comment-construire-un-deb-pour-ubuntu.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installation d&#039;un serveur SVN sous Ubuntu</title>
		<link>http://blog.nicolargo.com/2009/04/installation-dun-serveur-svn-sous-ubuntu.html</link>
		<comments>http://blog.nicolargo.com/2009/04/installation-dun-serveur-svn-sous-ubuntu.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 08:10:35 +0000</pubDate>
		<dc:creator>NicoLargo</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.nicolargo.com/2009/04/installation-dun-serveur-svn-sous-ubuntu.html</guid>
		<description><![CDATA[Le but de ce billet est de mettre en place un serveur de gestion de versions basée sur SVN+SSH.
On commence par installer le package subversion qui comprend à la fois le client et le serveur SVN.
# sudo svn update
# sudo apt-get install subversion
on créé un utilisateur et un groupe générique svn.
# sudo adduser svn
Adding user [...]]]></description>
			<content:encoded><![CDATA[<p>Le but de ce billet est de mettre en place <a href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_versions">un serveur de gestion de versions basée</a> sur SVN+SSH.</p>
<p>On commence par installer le package subversion qui comprend à la fois le client et le serveur SVN.</p>
<blockquote><p># sudo svn update<br />
# sudo apt-get install subversion</p></blockquote>
<p>on créé un utilisateur et un groupe générique svn.</p>
<blockquote><p># sudo adduser svn<br />
<small>Adding user `svn' ...<br />
Adding new group `svn' (1000) ...<br />
Adding new user `svn' (1001) with group `svn' ...<br />
Creating home directory `/home/svn' ...<br />
Copying files from `/etc/skel' ...<br />
Enter new UNIX password:<br />
Retype new UNIX password:<br />
passwd: password updated successfully<br />
Changing the user information for svn<br />
Enter the new value, or press ENTER for the default<br />
Full Name []: SVN<br />
Room Number []:<br />
Work Phone []:<br />
Home Phone []:<br />
Other []:<br />
Is the information correct? [y/N] y</small></p></blockquote>
<p>Pour des questions de sécurité, je vous conseille de désactiver le SHELL pour cet utilisateur:</p>
<blockquote><p># sudo vipw<br />
svn:x:1001:1000:SVN,,,:/home/svn:<strong>/usr/sbin/nologin</strong></p></blockquote>
<p>Si vous souhaitez accéder à votre serveur SVN avec un compte unix bien précis, il faut ajouter le login de ce compte au groupe svn:</p>
<blockquote><p># sudo vigr<br />
svn:x:1000:<strong>nicolargo</strong></p></blockquote>
<p>Puis on créé un répertoire ou seront stockées les sources de vos programmes.</p>
<blockquote><p># sudo mkdir /var/svn</p></blockquote>
<p>Il faut ensuite demander à SVN de créer un répertoire SVN pour notre projet:</p>
<blockquote><p># sudo svnadmin create /var/svn/projet</p></blockquote>
<p>Puis de changer les droits:</p>
<blockquote><p># sudo chown -R svn:svn /var/svn<br />
# sudo chmod -R 775 /var/svn</p></blockquote>
<p>Il ne reste plus qu'a tester votre serveur à partir d'une machine distante en "important" votre projet (dont les sources sont localisées dans le répertoire ~/projet pour illustrer ce billet).</p>
<p>Avant l'importation, on va créer la structure classique de SVN:</p>
<p>projet<br />
- trunk<br />
- branches<br />
- tags</p>
<blockquote><p>client# svn mkdir --parents  svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m ""<br />
client# svn mkdir --parents  svn+ssh://nicolargo@monserveur/var/svn/projet/tags -m ""<br />
client# svn mkdir --parents  svn+ssh://nicolargo@monserveur/var/svn/projet/branches -m ""</p></blockquote>
<p>Puis on importe les sources:</p>
<blockquote><p>client# cd ~/projet<br />
client# svn import . svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m "Premiere importation"<br />
nicolargo@monserveur's password:<br />
...<br />
Révision 0 propagée.</p></blockquote>
<p>Il ne reste plus qu'a tester l'exportation des sources:</p>
<blockquote><p>client# cd ~<br />
client# mv projet projet.init<br />
client# svn co svn+ssh://nicolargo@monserveur/var/svn/projet/trunk projet<br />
...<br />
Révision 0 extraite.</p></blockquote>
<p>Pour aller plus loin dans l'utilisation de votre nouveau serveur SVN, je vous conseille <a href="http://artisan.karma-lab.net/node/1723">le très bon article de Ulhume</a> sur son non-blog...(remplacer juste http:// par svn+ssh://)</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=14647b18-bf3f-846d-a336-46c5213ee347" alt="" /></div>

                            <div id="aspdf">
                                <a href="http://blog.nicolargo.com/wp-content/plugins/as-pdf/generate.php?post=1908">
                                    <span> </span>
                                </a>
                            </div>
                        ]]></content:encoded>
			<wfw:commentRss>http://blog.nicolargo.com/2009/04/installation-dun-serveur-svn-sous-ubuntu.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
