<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.ulysses.fr/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>The trashiest blog in the World...</title>
  <link>http://blog.ulysses.fr/index.php/</link>
  <atom:link href="http://blog.ulysses.fr/index.php/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 21 May 2013 05:52:10 +0200</pubDate>
  <copyright>Sauf mention explicite, le contenu de ce site est sous licence Creative Commons by-nc</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>IIP Image server sous Fedora et RHEL/CentOS</title>
    <link>http://blog.ulysses.fr/index.php/post/19/05/2013/IIP-Image-server-sous-Fedora-et-RHEL/CentOS</link>
    <guid isPermaLink="false">urn:md5:d73b70199019b35b4bf9c4b6c14b4140</guid>
    <pubDate>Sun, 19 May 2013 23:47:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Depuis un certain temps (mars 2009), je maintiens à titre totalement
officieux un paquet RPM du &lt;a href=&quot;http://iipimage.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;serveur IIPImage&lt;/a&gt; dans mon &lt;a href=&quot;http://rpms.ulysses.fr/&quot;&gt;dépôt
personnel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;J'ai récemment décidé de l'intégrer dans les dépôts officiels, le but de mon
dépôt n'étant pas de fournir des paquets sur le long terme, mais davantage de
me servir d'incubateur en quelque sorte.... J'ai donc &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=962160&quot; hreflang=&quot;en&quot;&gt;soumis une
revue sur le Bugzilla&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grâce aux conseils toujours très avisés de &lt;a href=&quot;http://blog.famillecollet.com/&quot;&gt;Remi&lt;/a&gt; sur cette revue, j'ai fait évoluer le
paquet, apportant certaines modifications qui ne sont pas dénuées
d'intérêt :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le paquet ne dépend plus de apache HTTPD, ceux d'entre vous qui utilisent
d'autres serveurs web peuvent donc installer le paquet sans dépendances
disons... farfelues &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;une &lt;a href=&quot;http://fr.wikipedia.org/wiki/Systemd&quot;&gt;unité Systemd&lt;/a&gt; qui
permet d'exécuter le serveur seul, sur un port spécifié. Le service n'est
disponible que sous Fedora 18 actuellement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les paquets nécessaires sont disponibles via mon dépôt pour les versions 17
et 18 de Fedora, ainsi pour les versions 5 et 6 de RedHat (et équivalents). Une
fois la revue menée à bien, les paquets seront disponibles sur les dépôts
officiels et seront supprimés de mon dépôt personnel.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez utiliser Apache HTTPD et mod_fcgid avec le serveur IIP,
installez dans un premier temps les paquets adéquats :&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'yum --enablerepo=trashy install iipsrv-httpd-fcgi'
&lt;/pre&gt;
&lt;p&gt;Vous trouverez dans le dossier &lt;code&gt;/etc/httpd/conf.d&lt;/code&gt; un fichier
nommé &lt;code&gt;iipsrv.conf&lt;/code&gt;, dont vous pouvez vous inspirer pour votre
configuration spécifique. C'est à peu près aussi simple que ça ; votre
serveur IIP est désormais installé. Pour vérifier son fonctionnement de base,
rendez vous à l'adresse &lt;code&gt;http://localhost/iipsrv&lt;/code&gt; (ou celle que vous
aurez configurée) ; vous devriez voir une simple page avec le nom du
logiciel, sa version, un lien vers son site web et le nom de l'auteur.&lt;/p&gt;
&lt;p&gt;Il semble qu'il ne soit actuellement pas possible de fournir de façon
correcte des fichiers de configuration pour les autres serveurs, aussi, si vous
souhaitez utiliser le serveur IIP avec un autre serveur web, ou directement en
tant que service, installez uniquement le paquet &lt;code&gt;iiprsv&lt;/code&gt; ;&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'yum --enablerepo=trashy install iipsrv'
&lt;/pre&gt;
&lt;p&gt;Référez-vous ensuite à la &lt;a href=&quot;http://iipimage.sourceforge.net/documentation/server/#configuration&quot; hreflang=&quot;en&quot;&gt;documentation du serveur IIP&lt;/a&gt; ainsi qu'à celle de votre serveur web
pour paramétrer tout ça correctement.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez utiliser le service, notez que l'adresse IP et le port
sont configurables via un fichier actuellement disponible dans
&lt;code&gt;/etc/iipsrv/iipsrv.conf&lt;/code&gt;, dont le contenu est le suivant :&lt;/p&gt;
&lt;pre&gt;
IP=127.0.0.1
PORT=9002
&lt;/pre&gt;
&lt;p&gt;Une fois les valeur adaptées, lancez le serveur comme vous en avez
l'habitude :&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'systemctl start iipsrv'
&lt;/pre&gt;
&lt;p&gt;Votre serveur IIP est en route !&lt;/p&gt;
&lt;p&gt;Vous pourrez tester ça avec Apache 2.4 et &lt;code&gt;mod_proxy&lt;/code&gt; sous Fedora
18, par exemple. Ajoutez à votre configuration la ligne suivante (en adaptant
l'hôte et le port si vous avez modifié la configuration par défaut) :&lt;/p&gt;
&lt;pre&gt;
ProxyPass /iipsrv fcgi://127.0.0.1:9002/
&lt;/pre&gt;
&lt;p&gt;Relancez Apache, et le tour est joué. L'adresse
&lt;code&gt;http://localhost/iipsrv&lt;/code&gt; devrait vous renvoyer la page par
défaut.&lt;/p&gt;
&lt;p&gt;Notez que par défaut, SELinux ne permettra pas à Apache de se connecter à un
port qu'il ne connait pas. Pour y remédier, il vous suffira d'avoir recours aux
bons et loyaux services de &lt;code&gt;semanage&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'semanage port -a -t http_port_t -p tcp 9002'
&lt;/pre&gt;
&lt;p&gt;Notez enfin que ce paquet n'est peut-être pas actuellement dans sa version
finale (tant que la revue n'est pas terminée), les modifications ultérieures ne
devraient cependant pas avoir trop d'impacts (j'aimerai en être absolument
certain, mais ma boule de cristal est malencontreusement tombée par terre
récemment, et refuse catégoriquement de fonctionner :p).&lt;/p&gt;
&lt;p&gt;N'hésitez pas à participer à &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=962160&quot; hreflang=&quot;en&quot;&gt;la
revue&lt;/a&gt;, ainsi qu'&lt;a href=&quot;http://iipimage.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;au
projet IIPImage&lt;/a&gt; !&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.ulysses.fr/index.php/post/19/05/2013/IIP-Image-server-sous-Fedora-et-RHEL/CentOS#comment-form</comments>
      <wfw:comment>http://blog.ulysses.fr/index.php/post/19/05/2013/IIP-Image-server-sous-Fedora-et-RHEL/CentOS#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.ulysses.fr/index.php/feed/atom/comments/124</wfw:commentRss>
      </item>
    
  <item>
    <title>Long time no see...</title>
    <link>http://blog.ulysses.fr/index.php/post/18/10/2012/Long-time-no-see...</link>
    <guid isPermaLink="false">urn:md5:2185ef94bff1ae003c72c90f5c830948</guid>
    <pubDate>Thu, 18 Oct 2012 08:17:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;(French version below.)&lt;/p&gt;
&lt;p&gt;It's been a long time since I could take part in a Fedora event, for many
reasons (good and bad ones ;)).&lt;/p&gt;
&lt;p&gt;Saturday, a FUDCon (Fedora Users and Developpers Conferences) took place
in... Paris! That was an incredible chance to see friends I've not seen for
years now, to discuss FOSS (mainly Feodra, of course :p), to listen very
interesting talks, and to meet new people.&lt;/p&gt;
&lt;p&gt;It's been a very very good week-end, Id' like to thanks all participants,
See you soon!&lt;/p&gt;
&lt;p&gt;I've also took some photos, you can see them on &lt;a href=&quot;http://fedora.ulysses.fr/gallery/fudcon-paris-2012/&quot;&gt;my Fedora FUDCon Paris
2012 photo album&lt;/a&gt; &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Cela faisait un moment que je n'avais pu prendre part à un évènement Fedora,
pour différentes raisons (bonnes ou mauvaises ;)).&lt;/p&gt;
&lt;p&gt;Samedi, un FUDCon (Fedora Users and Developpers Conferences) se tenait à...
Paris ! C'était une chance incroyable pour moi de revoir des amis que je
n'avais vu depuis des années, de discuter logiciel libre (principalement
Fedora, bien entendu :p), de participer à des conférences très intéressantes,
et de rencontrer de nouvelles personnes.&lt;/p&gt;
&lt;p&gt;Ça a été un excellent week-end, je voudrais remercier toutes les personnes
qui ont participé. À bientôt !&lt;/p&gt;
&lt;p&gt;J'ai également pris quelques photos, que vous pourrez voir sur &lt;a href=&quot;http://fedora.ulysses.fr/gallery/fudcon-paris-2012/&quot;&gt;mon album photo Fedora
FUDCon Paris 2012&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Serveur Jabber Prosody sous Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/07/05/2012/Serveur-Jabber-Prosody-sous-Fedora</link>
    <guid isPermaLink="false">urn:md5:d9f5042278a14277292d9d0ff0b85903</guid>
    <pubDate>Mon, 07 May 2012 09:28:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Il y a un peu plus de 2 ans (le 01 janvier 2010 en fait) ; je posais
une &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551765&quot; hreflang=&quot;en&quot;&gt;demande de revue&lt;/a&gt; pour intégrer le &lt;a href=&quot;http://prosody.im/&quot; hreflang=&quot;en&quot;&gt;serveur XMPP (Jabber) Prosody&lt;/a&gt; dans les dépôts officiels de
&lt;a href=&quot;http://fedoraproject.org&quot;&gt;Fedora&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce fût donc un immense plaisir que d'apprendre à l'instant &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551765#c33&quot; hreflang=&quot;en&quot;&gt;l'approbation de ce paquet&lt;/a&gt;, et qui sera par conséquent disponible
assez rapidement dans le dépôt updates-testing de votre Fedora favorite &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Le
paquet sera aussi construit et maintenu dans le dépôt EPEL pour
RHEL/CentOS/Whatever en version 6.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>git-flow sous Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/21/02/2012/git-flow-sous-Fedora</link>
    <guid isPermaLink="false">urn:md5:1296f55809898361e44b0381dc503d51</guid>
    <pubDate>Tue, 21 Feb 2012 09:22:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>WorkLand</category>
            
    <description>    &lt;p&gt;Il y a quelques semaines, j'entendais parler de &lt;a href=&quot;https://github.com/nvie/gitflow&quot; hreflang=&quot;en&quot;&gt;git-flow&lt;/a&gt;, un ensemble
d'extensions Git qui aide à respecter &lt;a href=&quot;http://nvie.com/posts/a-successful-git-branching-model/&quot; hreflang=&quot;en&quot;&gt;le
modèle de développement Git de Vincent Driessen&lt;/a&gt; ; modèle que je ne
connaissais pas d'avantage. git-flow &lt;a href=&quot;http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/&quot;&gt;simplifie les
choses pour suivre ce modèle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;À l'occasion de la &lt;a href=&quot;http://galette.tuxfamily.org/dc/index.php/post/2012/02/19/Galette-0.7%2C-et-bien-plus&quot;&gt;
sortie de la nouvelle version de Galette&lt;/a&gt; (pleins de nouveautés !! :-p ), et
de la migration des sources du projet de Subversion vers Git ; j'ai décidé
d'utiliser git-flow.&lt;/p&gt;
&lt;p&gt;Premier constat : pas de paquet disponible dans les dépôts :'(&lt;br /&gt;
Un RPM de git-flow pour Fedora 16 est donc désormais disponible dans le
&lt;a href=&quot;http://rpms.ulysses.fr&quot;&gt;dépôt trashy&lt;/a&gt; (si d'aventure quiconque
aurait envie de l'intégrer dans les dépôts officiels, le &lt;a href=&quot;https://bitbucket.org/trashy/rpm/src/tip/git-flow/git-flow.spec&quot;&gt;fichier
SPEC&lt;/a&gt; et le &lt;a href=&quot;http://rpms.ulysses.fr/SRPMS/git-flow-0.4.1-2.gitab7fda21f1.fc16.trashy.src.rpm&quot;&gt;
SRPM&lt;/a&gt; sont disponibles &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; )&lt;/p&gt;
&lt;p&gt;Une fois le RPM installé, la commande &lt;code&gt;git flow&lt;/code&gt; est
disponible :&lt;/p&gt;
&lt;pre&gt;
 % git flow version
0.4.2-pre
&lt;/pre&gt;
&lt;p&gt;L'autocomplétion des commandes Git est une aide plus qu'appréciable au
quotidien, si vous souhaitez en bénéficier pour git-flow ; il vous faudra
installer un &lt;a href=&quot;https://github.com/bobthecow/git-flow-completion&quot; hreflang=&quot;en&quot;&gt;script d'autocompleteion pour git-flow (bash ou zsh)&lt;/a&gt;. Une
fois le fichier correspondant à votre shell récupéré, il suffit de faire un
&lt;code&gt;source fichier&lt;/code&gt; pour que la complétion soit disponible &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bien que je n'aie encore que peu d'expérience avec cet outil, je trouve
assez pratique que ce soit lui et non moi qui soit en charge de savoir quelle
doit être la branche d'origine, ou encore qu'il se charge automatiquement lors
d'une correction de bogue du merge vers les branches de développement et
stable, ainsi que la création du tag.&lt;br /&gt;
Tout dans git-flow peut être fait à l'aide de commandes Git uniquement, on peut
donc facilement choisir de l'utiliser ou non...&lt;/p&gt;
&lt;p&gt;Un outil fort intéressant à mes yeux !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Dépôt trashy pour Fedora 16</title>
    <link>http://blog.ulysses.fr/index.php/post/31/12/2011/D%C3%A9p%C3%B4t-trashy-pour-Fedora-16</link>
    <guid isPermaLink="false">urn:md5:97efea835dcebd5be43df0479d7c4c2c</guid>
    <pubDate>Sat, 31 Dec 2011 11:42:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Mon &lt;a href=&quot;http://rpms.ulysses.fr&quot; hreflang=&quot;fr&quot;&gt;dépôt personnel (le dépôt
« trashy »)&lt;/a&gt; fournissait jusqu'à présent des paquets pour Fedora 14 et
15 ; ainsi que pour EL-5 et EL-6.&lt;/p&gt;
&lt;p&gt;À compter d'aujourd'hui ; les &lt;a href=&quot;http://rpms.ulysses.fr/fedora/16/&quot; hreflang=&quot;fr&quot;&gt;paquets sont également
disponibles pour Fedora 16&lt;/a&gt; &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Cette évolution signe l'arrêt du dépôt
Fedora 14, qui n'est plus supportée de toutes façons.&lt;/p&gt;
&lt;p&gt;J'ai profité de cette mise à jour pour faire un peu de ménage, et mettre à
jour certains paquets. Sur ce dépôt, vous pourrez trouver :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la dernière version SVN de &lt;a href=&quot;http://galette.tuxfamily.org&quot; hreflang=&quot;fr&quot;&gt;Galette&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;le serveur Jabber/XMPP &lt;a href=&quot;http://prosody.im&quot; hreflang=&quot;en&quot;&gt;Prosody&lt;/a&gt; (et ses dépendances),&lt;/li&gt;
&lt;li&gt;la dernière version du logiciel éducatif &lt;a href=&quot;http://gcompris.net/&quot; hreflang=&quot;fr&quot;&gt;GCompris&lt;/a&gt; (les dépôts officiels n'étant pas à jour),&lt;/li&gt;
&lt;li&gt;le dernier &lt;a href=&quot;http://www.lshift.net/mercurial-server.html&quot; hreflang=&quot;en&quot;&gt;mercurial-server&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;le &lt;a href=&quot;http://iipimage.sourceforge.net&quot; hreflang=&quot;en&quot;&gt;serveur d'images
IIP&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;la bibliothèque &lt;a href=&quot;http://code.google.com/p/python-gnupg/&quot; hreflang=&quot;en&quot;&gt;python-gnupg&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;le logiciel éducatif &lt;a href=&quot;http://omnitux.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;Omnitux&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.smarty.net/&quot; hreflang=&quot;en&quot;&gt;Smarty 3&lt;/a&gt;
(expérimental),&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meilleurs voeux à tous &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Joyeusetés (ou débilités) matinales de Fedora 16</title>
    <link>http://blog.ulysses.fr/index.php/post/08/12/2011/Joyeuset%C3%A9s-%28ou-d%C3%A9bilit%C3%A9s%29-matinales-de-Fedora-16</link>
    <guid isPermaLink="false">urn:md5:ae9b0e91607170c491bded1c4c702dca</guid>
    <pubDate>Thu, 08 Dec 2011 06:56:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Ce matin, comme bien d'autres, je me mets sur la dos de &lt;a href=&quot;http://galette.tuxfamily.org&quot;&gt;Galette&lt;/a&gt;, pour résoudre quelques bogues,
rédiger un brin de documentation, bref, pour bosser en somme.&lt;/p&gt;
&lt;p&gt;Comme à l'accoutumée, je lance dans une console en root un &lt;code&gt;tailf
/var/log/http/error_log&lt;/code&gt; ; et un &lt;code&gt;tailf logs/galette.log&lt;/code&gt;
dans une autre, en user. Jusque là, rien de bien excitant me direz-vous, et
vous aurez raison. Oui, mais ce matin... Le second tailf échoue ; avec un
message laconique :&lt;/p&gt;
&lt;pre&gt;
 % tailf logs/galette.log   

tailf: logs/galette.log : impossible d'ajouter une surveillance inotify (la limite de surveillances inotify a été atteinte).
&lt;/pre&gt;
&lt;p&gt;Chouette. La sortie de &lt;code&gt;tail -f&lt;/code&gt; ne diffère qu'à peine :&lt;/p&gt;
&lt;pre&gt;
 % tail -f logs/galette.log

tail: inotify resources exhausted
tail: inotify ne peut pas être utilisé, retour à l'interrogation active
&lt;/pre&gt;
&lt;p&gt;Bon, OK, c'est pas un bon matin. Première vérification : l'espace
disque disponible. Tout est correct de ce côté là ; c'est pas ça &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Après quelques recherches, je trouve la commande qui me permet de lister,
par ordre de gourmandise, les processus qui consomment le plus de ce côté.
Lançons nous :&lt;/p&gt;
&lt;pre&gt;
 % for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
      1 /proc/2655/fd/anon_inode:inotify
      1 /proc/2622/fd/anon_inode:inotify
      1 /proc/2609/fd/anon_inode:inotify
      1 /proc/2511/fd/anon_inode:inotify
      1 /proc/2503/fd/anon_inode:inotify
&lt;/pre&gt;
&lt;p&gt;Et voici donc les coupables :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;goa-daemon&lt;/code&gt; (process 2655) - qui remporte la palme toutes
catégories confondues&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tracker-miner-flickr&lt;/code&gt; (process 2622)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nautilus -n&lt;/code&gt; (process 2609)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tracker-store&lt;/code&gt; (process 2511)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tracker-miner-fs&lt;/code&gt; (process 2503)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mis à part &lt;code&gt;nautilus&lt;/code&gt; (bien que je me demande toujours pourquoi
nautilus prend un malin plaisir à se charger de l'afficage de mon bureau
XFCE ; mais passons ce point de détail) ; je n'ai recours à aucun des
services proposés, mieux même : je n'en veux pas. Tracker (à ce que j'en
sais) indexe les données présentes (je ne sais top ou d'ailleurs) pour
effectuer des recherches. Chouette ; je suis super content, j'utilise
uniquement la console pour effectuer des recherches quand j'en ai besoin.&lt;/p&gt;
&lt;p&gt;J'avais déjà remarqué que certains processus &lt;code&gt;tracker&lt;/code&gt; se
lançaient pour consommer du CPU à ne plus savoir qu'en faire (ralentissant par
ailleurs les machines les plus lentes) ; et comme ce n'était pas trop
problématique, je les avais simplement killés. Oui mais là ; ça commence à
faire beaucoup ; et je voudrai les désactiver.&lt;/p&gt;
&lt;p&gt;Hé bien, il n'y a pas de façon simple. Supprimer tracker va virer Brasero,
que je souhaiterai continuer à utiliser. La solution pour désactiver tracker,
je l'ai trouvée dans un rapport de bogue au titre évocateur « &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=747689#c1&quot; hreflang=&quot;en&quot;&gt;provide a
method to disable tracker&lt;/a&gt; ». Il faut créer les trois fichiers
suivants :&lt;/p&gt;
&lt;pre&gt;
~/.config/autostart/tracker-miner-flickr.desktop
~/.config/autostart/tracker-miner-fs.desktop
~/.config/autostart/tracker-store.desktop
&lt;/pre&gt;
&lt;p&gt;Avec le contenu :&lt;/p&gt;
&lt;pre&gt;
[Desktop Entry]
Hidden=true
&lt;/pre&gt;
&lt;p&gt;Une solution à répéter pour chaque utilisateur du système.
&lt;strong&gt;Révolutionnaire&lt;/strong&gt;, vraiment. Il semblerait par ailleurs que
cette méthode ne soit pas la plus adaptée pour gnome-shell (voir le commentaire
#2 du rapport de bogue) ; mais je me suis arrêté là, j'utilise XFCE.&lt;/p&gt;
&lt;p&gt;Quant au démon GOA (Gnome Online Accounts), je l'ai juste killé pour le
moment, je n'ai pas plus de temps à perdre ce matin pour désactiver ce que je
n'ai pas demandé, qui se lance quand même, et me bouffe mes ressources...&lt;/p&gt;
&lt;p&gt;Hope that could help.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mon GIT à la maison ! Git - Gitolite - cgit (ou gitweb)</title>
    <link>http://blog.ulysses.fr/index.php/post/17/09/2011/Mon-GIT-%C3%A0-la-maison-%21-Git-Gitolite-cgit-%28ou-gitweb%29</link>
    <guid isPermaLink="false">urn:md5:8b97dd856fb0a5df6a86871da971bdd8</guid>
    <pubDate>Sat, 17 Sep 2011 22:11:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Ces derniers temps, je m'intéresse de plus en plus à Git en remplacement
partiel de mes anciens dépôts SVN (partiel seulement, car j'apprécie aussi
&lt;a href=&quot;http://mercurial.selenic.com/&quot; hreflang=&quot;en&quot;&gt;Mercurial&lt;/a&gt;, certains
de mes anciens projets ont dores et déjà migré).&lt;/p&gt;
&lt;p&gt;Ce que je souhaite :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;avoir un accès via le web au dépôt, au minimum pour consulter le code,&lt;/li&gt;
&lt;li&gt;pouvoir assez facilement régler les droits en lecture et/ou écriture par
dépôt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Côté accès web, je dispose actuellement de nombreux outils pour naviguer
dans mes dépôts SVN :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.ulysses.fr/java/&quot;&gt;en utilisant mod dav svn et une
feuille XSLT adaptée&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.ulysses.fr/viewvc/java/&quot;&gt;en utilisant ViewVC&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;ou encore &lt;a href=&quot;http://svn.ulysses.fr/websvn/wsvn/Java?&quot;&gt;via
WebSVN&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mercurial n'est pas en reste ; puisqu'il est est facile de mettre en
place une &lt;a href=&quot;http://hg.ulysses.fr/&quot;&gt;interface web de consultation des
dépôts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'interface web, en plus de me permettre de consulter mes dépôts depuis
n'importe quel matériel permet de lancer un navigateur web, donne aussi un
aspect public pour mes projets (la plupart étant sous licence libre) ;
l'écriture étant restreinte aux accès SSH.&lt;/p&gt;
&lt;p&gt;Le pendant Git de ces interfaces est Gitweb, utilisé par de nombreux projets
hébergé sous Git, comme le Projet Fedora par exemple. Cependant, j'ai très vite
rencontré certaines « limites » avec gitweb, qui ne me semblent pas
acceptables :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;je ne suis pas parvenu (bien qu'à priori cela soit possible) à mettre en
place le clonage des dépôts via HTTP &lt;img src=&quot;/themes/default/smilies/confused.png&quot; alt=&quot;:-/&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;lorsqu'un dépôt n'est pas autorisé en lecture à l'utilisateur spécial
&lt;code&gt;gitweb&lt;/code&gt;, il n'est certes pas affiché dans la liste des
dépôts ; mais est tout de même accessible via l'interface, pour le peu que
l'on connaisse le nom du dépôt !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'ai donc décidé de me tourner vers une alternative à gitweb : &lt;a href=&quot;http://hjemli.net/git/cgit/about/&quot; hreflang=&quot;en&quot;&gt;cgit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bien entendu, des service d'hébergement Git tels que &lt;a href=&quot;https://gitorious.org/&quot; hreflang=&quot;en&quot;&gt;gitorious&lt;/a&gt; ou &lt;a href=&quot;https://github.com/&quot; hreflang=&quot;en&quot;&gt;github&lt;/a&gt; existent ; mais ce n'est
absolument pas envisageable pour le travail ; et à titre personnel,
j'aurai aimé avoir des dépôts privés, ce qui n'est pas possible avec les
formules gratuites de tels hébergeurs. De plus, seul &lt;a href=&quot;https://gitorious.org/&quot; hreflang=&quot;en&quot;&gt;gitorious&lt;/a&gt; repose actuellement sur
des technologies libres...&lt;/p&gt;
&lt;p&gt;En ce qui concerne la gestion des accès, &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/18/02/2011/mercurial-server-sous-Fedora&quot;&gt;j'avais évoqué
ici-même l'utilisation de mercurial-server sous Fedora&lt;/a&gt; ; dont le
pendant Git est &lt;a href=&quot;https://github.com/sitaramc/gitolite/wiki/&quot; hreflang=&quot;en&quot;&gt;gitolite&lt;/a&gt; (en quelque sorte le successeur de &lt;a href=&quot;http://eagain.net/gitweb/?p=gitosis.git;a=blob;f=README.rst&quot;&gt;gitosis&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Let's go :&lt;/p&gt;
&lt;pre&gt;
$ sudo yum install git-all gitolite
&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;git-all&lt;/code&gt; installera l'ensemble des paquets &lt;code&gt;git-*&lt;/code&gt;
présents sur les dépôts, vous pouvez si vous le souhaitez préférer ne lister à
la place que les paquets que vous souhaitez réellement installer &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;gitolite&lt;/h2&gt;
&lt;p&gt;En plus des explications fournies ici, je vous conseille vivement de
consulter &lt;a href=&quot;http://sitaramc.github.com/gitolite/doc/1-INSTALL.html&quot; hreflang=&quot;en&quot;&gt;la documentation d'installation de gitolite&lt;/a&gt; &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Commençons par mettre en place &lt;code&gt;gitolite&lt;/code&gt;. Le paquet présent sur
les dépôts installera bien entendu tout ce dont vous aurez besoin :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les fichiers de l'application (ben oui, heureusement !),&lt;/li&gt;
&lt;li&gt;un utilisateur dédié (&lt;code&gt;gitolite&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;un répertoire de stockage (&lt;code&gt;/var/lib/gitolite&lt;/code&gt; - qui est
également le &lt;code&gt;$HOME&lt;/code&gt; de l'utilisateur &lt;code&gt;gitolite&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gitolite offre un accès aux dépôts Git via SSH. L'intégralité des dialogues
avec le serveur passeront donc par l'utilisateur gitolite ; le programme
se chargera ensuite de vérifier qui vous êtes et ce à quoi vous avez accès...
ou pas :-p Il vous faut donc &lt;a href=&quot;http://doc.fedora-fr.org/wiki/SSH_:_Authentification_par_cl%C3%A9&quot; hreflang=&quot;fr&quot;&gt;créer une clé SSH&lt;/a&gt; (si ce n'est déjà fait) :&lt;/p&gt;
&lt;pre&gt;
$ ssh-keygen
&lt;/pre&gt;
&lt;p&gt;Il faut ensuite copier la clé sur le serveur en la renommant de la forme
&lt;q&gt;username.pub&lt;/q&gt;. Il faudra pour la suite que cette clé soit lisible par
l'utilisateur gitolite, la copier dans &lt;code&gt;/tmp&lt;/code&gt; semble une bonne
idée :&lt;/p&gt;
&lt;pre&gt;
$ scp ~/.ssh/ir_rsa.pub user@server:/tmp/machin.pub
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; le nom de la clé SSH n'est pas anodin. En effet,
c'est sous ce nom que vous serez identifié ; et c'est celui qui sera
utilisé un peu plus tard lors de la configuration des droits des dépôts. Cette
remarque est valable d'une façon générale avec gitolite ; on y reviendra
&lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Sur le serveur, il faudra ensuite initialiser gitolite :&lt;/p&gt;
&lt;pre&gt;
# su - gitolite
$ gl-setup /tmp/machin.pub
creating gitolite-admin...
Initialized empty Git repository in /var/lib/gitolite/repositories/gitolite-admin.git/
[...]
 2 files changed, 6 insertions(+), 0 deletions(-)
 create mode 100644 conf/gitolite.conf
 create mode 100644 keydir/machin.pub
&lt;/pre&gt;
&lt;p&gt;Et... Voilà ! Gitolite est installé et configuré sur votre
serveur ; vous pouvez profiter de la magie !!&lt;/p&gt;
&lt;p&gt;L'administration de Gitolite se fait par... un dépôt Git, on peut voir qu'il
a été créé et peuplé par la commande &lt;code&gt;gl-setup&lt;/code&gt; Récupérons un clone
(depuis la machine sur laquelle est installée la clé SSH uploadée. Ben
ouais ; faut suivre un peu ! &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt; ) :&lt;/p&gt;
&lt;pre&gt;
$ git clone gitolite@server:gitolite-admin.git
&lt;/pre&gt;
&lt;p&gt;Examinons le dépôt ainsi cloné :&lt;/p&gt;
&lt;pre&gt;
$ tree gitolite-admin 
gitolite-admin
|-- conf
|   `-- gitolite.conf
`-- keydir
    `-- machin.pub
&lt;/pre&gt;
&lt;p&gt;On a donc un dossier conf qui contient l'unique fichier de configuration de
gitolite ; et un dossier &lt;code&gt;keydir&lt;/code&gt; dont la fonction est de
recevoir toutes les clés des utilisateurs. Le fichier de configuration par
défaut donne tous les droits à l&amp;quot;utilisateur machin sur le dépôt
d'administration, un dépôt de test accessible librement à tous créé à
l'initialisation est aussi configuré :&lt;/p&gt;
&lt;pre&gt;
$ cat conf/gitolite.conf
        repo    gitolite-admin
                RW+     =   machin

        repo    testing
                RW+     =   @all

        repo    mailletest
                RW+      =  machin chouette
                R        =  chose gitweb
&lt;/pre&gt;
&lt;p&gt;Pour créer un nouveau dépôt, il suffit d'ajouter l'entrée au fichier de
configuration. Dès que vous aurez fait un &lt;code&gt;git push&lt;/code&gt; dans le dépôt
&lt;code&gt;gitolite-admin&lt;/code&gt;, le nouveau dépôt sera initialisé automatiquement.
Cool, non ? :-p&lt;br /&gt;
Le dépôt ajouté portera le nom &lt;code&gt;mailletest&lt;/code&gt; ; il sera
accessible en lecture/écriture aux autilisateurs &lt;code&gt;machin&lt;/code&gt; et
&lt;code&gt;chouette&lt;/code&gt;, en lecture seule pour les utilisateurs
&lt;code&gt;chose&lt;/code&gt; et &lt;code&gt;gitweb&lt;/code&gt;. N'oubliez pas dans ce cas d'ajouter
les fichiers &lt;code&gt;chouette.pub&lt;/code&gt; et &lt;code&gt;chose.pub&lt;/code&gt; dans le
dossier &lt;code&gt;keydir&lt;/code&gt;, et de les ajouter au dépôt avant de commiter. En
cas d'oubli, gitolite se fera un plaisir de vous informer que le ou les
utilisateurs qui ont été configurés n'ont pas de clé. L'utilisateur
&lt;code&gt;gitweb&lt;/code&gt; est particulier, il définit la liste des dépôts qui seront
exportés dans le fichier &lt;code&gt;projects.list&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;
$ git add
$ git commit conf/gitolite.conf -m&amp;quot;Test de création de dépôt&amp;quot;
[...]
$ git push 
[...]
remote: Initialized empty Git repository in /var/lib/gitolite/repositories/mailletest.git/
[...]
&lt;/pre&gt;
&lt;p&gt;Votre installation de gitolite est complète, votre premier dépôt est
créé ! Que demander de plus ? Ha oui, une interface web on avait
dit...&lt;/p&gt;
&lt;p&gt;Si vous souhaitez en savoir plus sur les possibilités de gitolite :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sitaramc.github.com/gitolite/&quot; hreflang=&quot;en&quot;&gt;sommaire de la
documentation gitolite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sitaramc.github.com/gitolite/doc/2-admin.html&quot; hreflang=&quot;en&quot;&gt;documentation d'administration de gitolite&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Interface web&lt;/h2&gt;
&lt;p&gt;Si vous souhaitez utiliser une des interfaces web sur les futurs dépôts
créés, il faudra effectuer une petite modification supplémentaire dans la
configuration de gitolite. Dans le fichier
&lt;code&gt;/var/lib/gitolite/.gitolite.rc&lt;/code&gt;, changez la valeur pour
&lt;code&gt;$REPO_UMASK&lt;/code&gt; de &lt;code&gt;0077&lt;/code&gt; à &lt;code&gt;0027&lt;/code&gt; (les
commentaires présents dans le fichier devraient être assez parlants).&lt;/p&gt;
&lt;p&gt;La configuration expliquée ici est basée sur le serveur web Apache HTTPD. Il
est évidemment possible d&amp;quot;utiliser les différentes interfaces web à Git avec
n'importe quel serveur web capable de faire du CGI, mais cela dépasse largement
le cadre de ce tutoriel.&lt;/p&gt;
&lt;p&gt;Notez que lors de l'installation des paquets de chacune des interfaces
présentées ici, un fichier de configuration par défaut sera placé dans le
dossier &lt;code&gt;/etc/httpd/conf.d/&lt;/code&gt;, nommés respectivement
&lt;code&gt;cgit.conf&lt;/code&gt;, &lt;code&gt;git.conf&lt;/code&gt; et
&lt;code&gt;webgit-caching.conf&lt;/code&gt;. Comme nous utiliserons un hôte virtuel dédié,
nous commenterons chacune des lignes présentes dans le fichier par défaut (on
ne supprime pas le fichier, puisqu'il est fourni avec le paquet RPM &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;p&gt;Chaque dépôt sur le serveur requiert d'être initialisé pour répondre aux
requêtes HTTP :&lt;/p&gt;
&lt;pre&gt;
$ cd /var/lib/gitolite/repositories/mailletest.git
$ git update-server-info
&lt;/pre&gt;
&lt;p&gt;L'opération est à répéter après chaque commit. Évidemment, il y a une
solution automatisée, le faire à la main n'est même pas envisageable &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;
Utilisons les hooks pour parvenir à nos fins, l'opération sera automatiquement
effectuée sur le dépôt après chaque commit :&lt;/p&gt;
&lt;pre&gt;
$ cd /var/lib/gitolite/repositories/mailletest.git
$ cp ./hooks/post-update.sample ./hooks/post-update
$ chmod +x ./hooks/post-update
&lt;/pre&gt;
&lt;h3&gt;Gérer les droits...&lt;/h3&gt;
&lt;p&gt;On arrive à une partie un peu plus sensible : la gestion des droits. En
effet, les dossiers et les dépôts créés sont par défaut uniquement accessibles
à l'utilisateur gitolite ; mais nous souhaitons que l'utilisateur apache
puisse y accéder. Heureusement, nous avons modifié les &lt;code&gt;REPO_MASK&lt;/code&gt;
de gitolite. Voyons ce qu'on a :&lt;/p&gt;
&lt;pre&gt;
# ls -al /var/lib/gitolite/projects.list
-rw-------. 1 gitolite gitolite 0 16 sept. 23:43 /var/lib/gitolite/projects.list
#  `--# ls -al /var/lib/gitolite/repositories 
total 40
drwxrwxr-x. 5 gitolite gitolite 4096 16 sept. 23:43 .
drwxr-x---. 5 gitolite gitolite 4096 16 sept. 23:13 ..
drwx------. 8 gitolite gitolite 4096 16 sept. 23:43 gitolite-admin.git
drwxr-x---. 7 gitolite gitolite 4096 16 sept. 23:43 mailletest.git
drwx------. 7 gitolite gitolite 4096 16 sept. 23:43 testing.git
&lt;/pre&gt;
&lt;p&gt;Ok, commençons par ajouter l'utilisateur &lt;code&gt;apache&lt;/code&gt; au groupe
&lt;code&gt;gitolite&lt;/code&gt;. Une fois cela fait, le dépôt nouvellement créé
(&lt;code&gt;mailltest.git&lt;/code&gt;) sera accessible depuis le web ; mais pas
&lt;code&gt;gitolite-admin&lt;/code&gt;, c'est voulu. En effet, je ne souhaite vraiment pas
que le dépôt de configuration soit accessible par le web ; ne pas pas
autoriser le serveur à lire son contenu est un bon moyen ; bien qu'il soit
aussi possible de configurer les dépôts que gitweb n'affichera pas... L'un
n'exclut de toutes façons pas l'autre « Deux précautions valent mieux
qu'une ».&lt;br /&gt;
Nous aurons aussi à adapter les droits sur le fichier
&lt;code&gt;projects.list&lt;/code&gt; pour que apache puisse le lire :&lt;/p&gt;
&lt;pre&gt;
# usermod -a -G gitolite apache
# chmod g+r /var/lib/gitolite
# chmod g+r /var/lib/gitolite/projects.list
&lt;/pre&gt;
&lt;h3&gt;SELinux...&lt;/h3&gt;
&lt;p&gt;Mais-heu ! SELinux, il est méchant avec moi, il me bloque l'accès à mes
jolis dépôts Git avec lesquels moi je veux m'amuser !&lt;/p&gt;
&lt;p&gt;Si SELinux est activé (je ne vois pas pourquoi il ne le serait pas, à plus
forte raison sur un serveur !!), l'accès aux fichiers et dossiers de Git sera
bloqué depuis les interfaces web. Il semble que la solution consiste à utiliser
le contexte &lt;code&gt;git_system_content_t&lt;/code&gt; sur les fichiers adéquats.&lt;/p&gt;
&lt;p&gt;Toutefois, appliquer ce contexte sur certains dossiers pourrait poser
problème. Un mauvais contexte sur le dossier &lt;code&gt;~/.ssh&lt;/code&gt; entraînerait
l'impossibilité de se connecter au dépôt via SSH... Plutôt gênant, non ?
:-p&lt;br /&gt;
J'ai donc choisi de modifier le dossier home de l'utilisateur pour séparer les
données système de l'utilisateur, et les données des dépôts Git :&lt;/p&gt;
&lt;pre&gt;
# usermod -d /home/gitolite -m gitolite
# mkdir /var/lib/gitolite &amp;amp;&amp;amp; chown -R gitolite:gitolite /var/lib/gitolite
# chmod o-rx /var/lib/gitolite
# mv /home/gitolite/* /var/lib/gitolite/
# mv /home/gitolite/.gitolite* /var/lib/gitolite
# su - gitolite
$ ln -s /var/lib/gitolite/* .
$ ln -s /var/lib/gitolite/.gitolite* .
&lt;/pre&gt;
&lt;p&gt;Appliquons maintenant le contexte SELinux adéquat :&lt;/p&gt;
&lt;pre&gt;
# semanage fcontext -a -t git_system_content_t '/var/lib/gitolite(/.*)?'
# restorecon -R -v /var/lib/gitolite
&lt;/pre&gt;
&lt;p&gt;Bon... On ne devrait pas être trop mal là &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Lancez donc votre navigateur
sur votre sous domaine, et voyez si ça fonctionne !&lt;/p&gt;
&lt;p&gt;En cas de problèmes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si c'est SELinux qui bloque, les erreurs vous seront signalées dans
&lt;code&gt;/var/log/messages&lt;/code&gt; ou &lt;code&gt;/var/log/audit/audit.log&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;s'il s'agit de problèmes de droits ; vous n'obtiendrez pas d'erreurs
dans les logs, juste un 404 dans le navigateur. Assurez vous que le groupe ait
le droit de lire les fichier et dossiers, et de traverser les dossiers,&lt;/li&gt;
&lt;li&gt;tout semble correct, et pourtant, votre dépôt n'apparaît pas ?
Vérifiez que vous avez bien ajouté les droits en lecture sur le dépôt pour
l'utilisateur &lt;code&gt;gitweb&lt;/code&gt; dans la configuration de gitolite.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;cgit&lt;/h3&gt;
&lt;p&gt;Cgit est est une application CGI écrite en C, un peu comme gitweb. Pour
l'installer :&lt;/p&gt;
&lt;pre&gt;
$ sudo yum install cgit
&lt;/pre&gt;
&lt;p&gt;La configuration de &lt;code&gt;cgit&lt;/code&gt; passe par le fichier
&lt;code&gt;/etc/cgitrc&lt;/code&gt;. Il suffira d'ajouter les lignes suivantes à ce
fichier :&lt;/p&gt;
&lt;pre&gt;
enable-gitweb-owner=1
project-list=/var/lib/gitolite/projects.list
scan-path=/var/lib/gitolite/repositories/
&lt;/pre&gt;
&lt;p&gt;Ensuite, nous configurerons notre hôte virtuel apache pour utiliser
cgit :&lt;/p&gt;
&lt;pre&gt;
# git repositories
&amp;lt;VirtualHost *:80&amp;gt;
        ServerName git.domain.com

        # Logs :
        ErrorLog /var/log/httpd/git_error_log
        CustomLog /var/log/httpd/git_access_log combined

        Alias /cgit-data /usr/share/cgit
        ScriptAlias /cgit /var/www/cgi-bin/cgit

        RewriteEngine on
        RewriteCond %{REQUEST_URI} !^/cgit
        RewriteRule (.*) http://git.domain.com/cgit$1 [P]

        &amp;lt;Location /&amp;gt;
                Options FollowSymLinks

                # Limitation commits
                &amp;lt;Limit POST PUT&amp;gt;
                        Require valid-user
                &amp;lt;/Limit&amp;gt;
        &amp;lt;/Location&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Vous aurez ainsi accès à l'interface cgit depuis l'URL
http://git.domaine.com ; et pourrez cloner un dépôt en utilisant le
protocole HTTP :&lt;/p&gt;
&lt;pre&gt;
$ git clone http://git.domaine.com/mailletest.git
&lt;/pre&gt;
&lt;p&gt;Vous pouvez afficher automatiquement les différents URL de clonage de vos
dépôts via cgit, en renseignant dans le fichier de configuration :&lt;/p&gt;
&lt;pre&gt;
clone-prefix=http://git.domain.com ssh://gitolite@git.domain.com
&lt;/pre&gt;
&lt;h3&gt;gitweb&lt;/h3&gt;
&lt;p&gt;Gitweb est aussi une application CGI. Pour l'installer :&lt;/p&gt;
&lt;pre&gt;
$ sudo yum install gitweb
&lt;/pre&gt;
&lt;p&gt;Créons ensuite notre hôte virtuel dans le fichier
&lt;code&gt;/etc/httpd/conf.d/git.mondomaine.com.conf&lt;/code&gt; avec le contenu
suivant :&lt;/p&gt;
&lt;pre&gt;
# git repositories
&amp;lt;VirtualHost *:80&amp;gt;
        ServerName git.mondomaine.com
        DocumentRoot /var/www/git/

        # Logs :
        ErrorLog /var/log/httpd/git_error_log
        CustomLog /var/log/httpd/git_access_log combined

        &amp;lt;Directory /var/www/git&amp;gt;
                DirectoryIndex gitweb.cgi
                Options ExecCGI FollowSymLinks

                ## Controls who can get stuff from this server.
                Order allow,deny
                Allow from all

                &amp;lt;Files gitweb.cgi&amp;gt;
                        SetHandler cgi-script
                &amp;lt;/Files&amp;gt;

                # Limit commits
                &amp;lt;Limit POST PUT&amp;gt;
                        Require valid-user
                &amp;lt;/Limit&amp;gt;

                # Redirections
                RewriteEngine on
                RewriteRule ^$ gitweb.cgi [L]
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d

                RewriteRule (.*) /gitweb.cgi/$1 [QSA,L]
        &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Le fichier de configuration principal de GitWeb se trouve à
&lt;code&gt;/etc/gitweb.conf&lt;/code&gt;. Pour notre configuration, il faut simplement
configurer deux choses : le fichier qui liste les projets, et le dossier
contenant les différents dépôts. On ajoutera donc au fichier
&lt;code&gt;gitweb.conf&lt;/code&gt; les lignes suivantes :&lt;/p&gt;
&lt;pre&gt;
$projects_list = &amp;quot;/var/lib/gitolite/projects.list&amp;quot;;
$projectroot = &amp;quot;/var/lib/gitolite/repositories/&amp;quot;;
&lt;/pre&gt;
&lt;h5&gt;Clonage via http&lt;/h5&gt;
&lt;p&gt;Le clone d'un dépôt en utilisant le protocole HTTP n'est pas natif avec la
configuration mise en place. D'abord, nous allons ajouter sur la pages des
différents projets l'URL de clonage. Ajoutez la ligne suivante dans le fichier
&lt;code&gt;/etc/gitweb.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
@git_base_url_list = qw(http://git.mydomain.com)
&lt;/pre&gt;
&lt;p&gt;Normalement, il suffit d'ajouter une règle de ré-écriture semblable à
celle-ci pour que le clonage avec une adresse du type
&lt;code&gt;http://git.domain.com/mailletest.git&lt;/code&gt; soit opérationnel :&lt;/p&gt;
&lt;pre&gt;
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ gitweb.cgi%{REQUEST_URI}  [L,PT]
&lt;/pre&gt;
&lt;p&gt;Je ne suis cependant pas encore parvenu à faire fonctionner ceci :'(&lt;/p&gt;
&lt;h4&gt;gitweb-caching&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;giweb-caching&lt;/code&gt; fournit les mêmes fonctionnalités que
&lt;code&gt;gitweb&lt;/code&gt;, mais avec le support du cache en sus. Pour
l'installer :&lt;/p&gt;
&lt;pre&gt;
$ sudo yum install gitweb-caching
&lt;/pre&gt;
&lt;p&gt;Pour l'activer il suffira de remplacer les deux occurrences
&lt;code&gt;/var/www/git&lt;/code&gt; par &lt;code&gt;/var/www/gitweb-caching&lt;/code&gt; dans le
fichier de configuration de l'hôte virtuel apache.&lt;/p&gt;
&lt;p&gt;Le script CGI installé par défaut ne possède pas le contexte SELinux adéquat
pour fonctionner, il faudra le modifier :&lt;/p&gt;
&lt;pre&gt;
# semanage fcontext -a -t httpd_git_script_exec_t '/var/www/gitweb-caching/gitweb.cgi'
# restorecon -v /var/www/gitweb-caching/gitweb.cgi
&lt;/pre&gt;
&lt;p&gt;Et c'est tout ! &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Notez que les remarques concernant le clonage de dépôts par HTTP sont
également valables pour &lt;code&gt;gitweb-caching&lt;/code&gt; :'(&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Galette : la cuisine continue !</title>
    <link>http://blog.ulysses.fr/index.php/post/04/09/2011/Galette-%3A-la-cuisine-continue-%21</link>
    <guid isPermaLink="false">urn:md5:bacb58830f3e183cc385d437cc92440f</guid>
    <pubDate>Sun, 04 Sep 2011 23:53:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>WebLand</category>
            
    <description>    &lt;p&gt;Tout est dans le titre. Merci de m'avoir lu.&lt;/p&gt;
&lt;p&gt;Non, mais je plaisante ; je vais développer un peu tout de même
&lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
Je ne sais trop par où commencer...&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.ulysses.fr/public/cooking_galette.jpg&quot; title=&quot;Comment faire une bonne Galette&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.cooking_galette_m.jpg&quot; alt=&quot;cooking_galette.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Comment faire une bonne Galette, sept. 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Design&lt;/h2&gt;
&lt;p&gt;Le design de Galette a pas mal changé depuis que je suis aux
commandes ; et je me suis décidé récemment à laisser tomber le rendu XHTML
(et les nombreux problèmes qu'il a pu engendrer sur Galette) pour HTML5. J'ai
ainsi pu utiliser les nouveautés de HTML5, notamment en ce qui concerne la
gestion des formulaires (champs requis, ...).&lt;/p&gt;
&lt;p&gt;Pour vous donner une idée, voici un aperçu avant (0.63.3)/après (0.7) des
pages d'authentification et d'enregistrement : &lt;a href=&quot;http://blog.ulysses.fr/public/login_galette_before-after.jpg&quot; title=&quot;Login Galette 0.63.3 vs 0.7&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.login_galette_before-after_m.jpg&quot; alt=&quot;Login Galette 0.63.3 vs 0.7&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Login Galette 0.63.3 vs 0.7, sept. 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.ulysses.fr/public/self_subscribe_galette_before-after.jpg&quot; title=&quot;Enregistrement Galette 0.63.3 vs 0.7&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.self_subscribe_galette_before-after_m.jpg&quot; alt=&quot;Enregistrement Galette 0.63.3 vs 0.7&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Enregistrement Galette 0.63.3 vs 0.7, sept. 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez souhaiter &lt;a href=&quot;http://blog.ulysses.fr/public/self_subscribe_galette_before-after_full.jpg&quot;&gt;voir la comparaison
complète pour la page d'enregistrement&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'actuel thème de Galette est compatible avec la majorité des navigateurs
récents (Firefox, Chromium, Epiphany, Internet Explorer 9, ...).&lt;/p&gt;
&lt;h2&gt;Fonctionnalités&lt;/h2&gt;
&lt;p&gt;L'un des ajouts les plus récents concerne la mise en place d'un historique
des E-Mailings envoyés aux adhérents, et la possibilité de les réutiliser comme
modèle &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Le travail est encore en cours, il n'est actuellement pas encore
possible de modifier les destinataires par exemple... Pas très pratique me
direz-vous, et vous aurez raison ; mais c'est en bonne voie &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Une autre modification relativement importante concerne la gestion des
transactions. Il est désormais possible, depuis une transaction, d'adjoindre
une contribution existante (en profitant pleinement des possibilités de la
liste des contributions) ou d'en créer une nouvelle. Jusque maintenant, on
pouvait uniquement créer une nouvelle contribution juste après la saisie d'une
nouvelle transaction, sans ajouts ultérieur possibles.&lt;/p&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;p&gt;Outre quelques ajustements du côté de la &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/installation/index.html&quot; hreflang=&quot;fr&quot;&gt;documentation d'installation&lt;/a&gt;, deux choses à noter :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le début de rédaction d'une &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/usermanual/index.html&quot; hreflang=&quot;fr&quot;&gt;documentation utilisateur&lt;/a&gt; (sont traités les champs dynamiques, la
traduction de libellés, et le textes des courriels envoyés),&lt;/li&gt;
&lt;li&gt;la refonte de la &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/&quot; hreflang=&quot;fr&quot;&gt;page d'accueil&lt;/a&gt; pour la rendre un peu plus sympathique
:-p&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.ulysses.fr/public/galette_doc_refonte.jpg&quot; title=&quot;Nouvelle page d'accueil de la documentation Galette&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.galette_doc_refonte_m.jpg&quot; alt=&quot;Nouvelle page d'accueil de la documentation Galette&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Nouvelle page d'accueil de la documentation Galette, sept. 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Base de données&lt;/h2&gt;
&lt;p&gt;Courant juillet, je me suis rendu compte que le framework de bases de
données que j'avais choisi il y a quelques années, &lt;a href=&quot;http://pear.php.net/package/MDB2&quot; hreflang=&quot;en&quot;&gt;MDB2&lt;/a&gt;, n'était plus
vraiment actif. En effet, la dernière version stable (2.4.1) date de
2007 ; et la dernière version de développement (2.5beta) de 2010.
MDB2-2.4.1 n'est pas compatible PHP 5.3, je me suis donc décidé à passer en
2.5.0b3 (beta). Oui mais voilà : toutes les requêtes préparées de Galette
échouaient, et silencieusement ; ce qui a rapidement causé des bogues très
difficiles à tracer et à résoudre..&lt;/p&gt;
&lt;p&gt;La coupe était pleine !&lt;/p&gt;
&lt;p&gt;Ayant récemment découvert le fait que &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.db.html&quot; hreflang=&quot;fr&quot;&gt;la partie
Db&lt;/a&gt; du &lt;a href=&quot;http://framework.zend.com/&quot; hreflang=&quot;en&quot;&gt;Zend Framework&lt;/a&gt;
était utilisable sans avoir recours à l'intégralité du framework
lui-même ; mon choix était fait. Une branche a été créée pour effectuer la
migration. 2 semaines et demie et environ 180 commits plus tard ; la
branche était mergée avec le trunk : Galette est désormais gérée par
Zend.&lt;/p&gt;
&lt;p&gt;J'ai profité de cette migration pour définitivement exclure les bouts de
code qui utilisaient encore et toujours Adodb ; et aussi pour passer
certains aspects du logiciel en POO.&lt;/p&gt;
&lt;p&gt;Il s'agit d'une modification fort importante, qui a nécessité de récrire une
grande partie du code existant ; bien qu'invisible pour l'utilisateur
final.&lt;/p&gt;
&lt;h2&gt;Tester !&lt;/h2&gt;
&lt;p&gt;Si vous souhaitez tester Galette, j'ai récemment mis en place une archive
mise à jour quotidiennement depuis le dépôt SVN :&lt;br /&gt;
&lt;a href=&quot;http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2&quot;&gt;http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cette fois, je peux vous dire merci de m'avoir lu, sans avoir à me reprendre
:-p&lt;/p&gt;
&lt;p&gt;Bon appétit !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Galette : version de développement et documentation</title>
    <link>http://blog.ulysses.fr/index.php/post/17/07/2011/Galette-%3A-version-de-d%C3%A9veloppement-et-documentation</link>
    <guid isPermaLink="false">urn:md5:f1d119b66cc70fdb2c645a36ed1fc0d9</guid>
    <pubDate>Sun, 17 Jul 2011 17:10:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>WebLand</category>
            
    <description>    &lt;p&gt;Depuis quelques années, &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/19/05/2007/Reprise-de-Galette-Gestion-dadherents-pour-associations-en-PHP/MySql&quot;&gt;
je suis le mainteneur de Galette&lt;/a&gt;, un logiciel libre de &lt;a href=&quot;http://galette.tuxfamily.org&quot;&gt;gestion d'adhérents et de cotisations en ligne à
destination des associations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Beaucoup de travail a été effectué sur le logiciel, mais de gros chantiers
ont été entamés, et pas mal de péripéties (pas forcément en rapport) ont fait
que les versions stables du projet n'avancent pas des masses (j'avais notamment
cessé tout développement sur le projet pendant 15 mois, pour ne reprendre que
récemment) &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Version de développement de Galette&lt;/h2&gt;
&lt;p&gt;De &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/changelog.html#id2&quot; hreflang=&quot;fr&quot; title=&quot;Changelog de la version 0.7 de Galette&quot;&gt;nombreuses fonctionnalités
ont dores et déjà été ajoutées&lt;/a&gt;, notamment un &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/plugins/index.html&quot; hreflang=&quot;fr&quot; title=&quot;Les plugin de Galette&quot;&gt;système de plugins&lt;/a&gt; qui devrait à terme
permettre de proposer de nouveau une version de Galette pour les &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/plugins/sport.html&quot; hreflang=&quot;fr&quot; title=&quot;Plugin Galette Sport : gestion d'adhérents et de cotisations d'association sportives&quot;&gt;
associations sportives&lt;/a&gt;, ou encore les &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/plugins/auto.html&quot; hreflang=&quot;fr&quot; title=&quot;Plugin Galette Auto : gestion d'adhérents et de cotisations d'association automobiles&quot;&gt;
associations automobiles&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Cette version de développement devrait être aujourd'hui relativement
utilisable, j'ai récemment corrigé pas mal de bogues qui ont été mis en
évidence par les tests qu' a effectués Roland, un gentil utilisateur de
Galette... Seulement voilà, la seule solution pour tester la version de
développement de Galette, c'est de la récupérer via le dépôt SVN... Je dis
« relativement utilisable », car je n'ai pas l'occasion de tester
l'intégralité des fonctionnalités régulièrement, et il m'est impossible de
savoir ce que ça peut donner chez divers hébergeurs ; des bogues peuvent
donc subsister.&lt;/p&gt;
&lt;p&gt;J'ai donc mis en place récemment un système de « nigthly » ; qui
met à disposition quotidiennement (à 0h30) cette version de développement sous
forme d'archive à télécharger ; disponible à l'adresse :&lt;br /&gt;
&lt;a href=&quot;http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2&quot;&gt;http://download.tuxfamily.org/galette/galette-0.7-dev.tar.bz2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour les utilisateurs de Fedora, j'ai également mis à disposition un
&lt;a href=&quot;http://rpms.ulysses.fr/&quot; hreflang=&quot;fr&quot; title=&quot;Dépôt trashy - dépôt Fedora/CentOS de Johan&quot;&gt;RPM de Galette 0.7 via mon dépôt
personnel&lt;/a&gt; que je vous conseille d'utiliser au lieu de l'archive
quotidienne, les problématiques de droits et de contextes SELinux étant
intégrées directement dans le RPM &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Les RPM sont disponibles pour Fedora 14 et Fedora 15 actuellement, je n'ai
pas prévu pour le moment de fournir des paquets pour RHEL/CentOS.&lt;/p&gt;
&lt;p&gt;Notez qu'il y a une petite modification à apporter au fichier de
configuration apache fournit par le paquet ; il s'agit de déclarer votre
fuseau horaire. Pour ce faire, dans le fichier
&lt;code&gt;/etc/httpd/conf.d/galette.conf&lt;/code&gt;, ajoutez simplement la directive
&lt;code&gt;php_value date.timezone Europe/Paris&lt;/code&gt; (où &lt;code&gt;Europe/Paris&lt;/code&gt;
correspond à votre fuseau horaire) dans la section &lt;code&gt;Directory
/usr/share/galette&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;Directory /usr/share/galette&amp;gt;
    Options None
    AllowOverride Limit Options FileInfo

    Order Deny,Allow
    Allow from all

    php_value date.timezone Europe/Paris
&amp;lt;/Directory&amp;gt;
&lt;/pre&gt;
&lt;h2&gt;Nouvelle documentation&lt;/h2&gt;
&lt;p&gt;Une toute nouvelle documentation a également vu le jour :&lt;br /&gt;
&lt;a href=&quot;http://galette.tuxfamily.org/documentation/&quot;&gt;http://galette.tuxfamily.org/documentation/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cette &lt;a href=&quot;http://galette.tuxfamily.org/documentation/&quot; title=&quot;Documentation de Galette&quot;&gt;nouvelle mouture de la documentation ne concerne que
Galette 0.7&lt;/a&gt;, et n'est disponible (pour le moment) qu'en français. Cette
documentation est axée sur trois grandes parties :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/installation/&quot; hreflang=&quot;fr&quot; title=&quot;Manuel d'installation de Galette&quot;&gt;le manuel
d'installation&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/usermanual/&quot; hreflang=&quot;fr&quot; title=&quot;Manuel de l'utilisateur de Galette&quot;&gt;le guide de
l'utilisateur&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/plugins/&quot; hreflang=&quot;fr&quot; title=&quot;Documentation d'installation et d'utilisation des plugins de Galette&quot;&gt;la
documentation des plugins&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/development/&quot; hreflang=&quot;fr&quot; title=&quot;Guide de développeur de galette&quot;&gt;le guide du
développeur&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Actuellement, le manuel de l'utilisateur est très peu avancé, c'est une
tâche qui demande elle aussi beaucoup de temps, et je n'en ai que trop peu... À
votre bon coeur ! &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Cette documentation est rédigée avec Sphinx (le système de documentation
utilisant &lt;a href=&quot;http://docutils.sourceforge.net/rst.html&quot; hreflang=&quot;en&quot;&gt;reStructuredText&lt;/a&gt; et utilisé -entre autres - pour la &lt;a href=&quot;http://docs.python.org/&quot; hreflang=&quot;en&quot;&gt;documentation du projet Python&lt;/a&gt;),
elle est hébergée sur un dépôt &lt;a href=&quot;http://fr.wikipedia.org/wiki/Git&quot; hreflang=&quot;fr&quot;&gt;GIT&lt;/a&gt; chez &lt;a href=&quot;http://tuxfamily.net/&quot; hreflang=&quot;fr&quot;&gt;Tuxfamily&lt;/a&gt;. Pour &lt;a href=&quot;http://galette.tuxfamily.org/documentation/fr/about.html&quot; hreflang=&quot;fr&quot; title=&quot;À propos de la documentation de Galette&quot;&gt;en savoir plus sur la nouvelle
documentation de Galette&lt;/a&gt;... &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>MrBot : passage à supybot-gribble</title>
    <link>http://blog.ulysses.fr/index.php/post/22/05/2011/MrBot-%3A-passage-%C3%A0-supybot-gribble</link>
    <guid isPermaLink="false">urn:md5:e6bb7c41eb12a10f79f1184296e84190</guid>
    <pubDate>Sun, 22 May 2011 21:00:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Le &lt;a href=&quot;http://fedoradoc.ulysses.fr/mrbot.php&quot; hreflang=&quot;fr&quot; title=&quot;MrBot&quot;&gt;bot qui hante différents canaux IRC francophones relatifs à Fedora&lt;/a&gt;
est propulsé par &lt;a href=&quot;http://supybot.sourceforge.net/&quot; hreflang=&quot;en&quot; title=&quot;Supybot&quot;&gt;Supybot&lt;/a&gt;, qui fonctionne très bien et fait exactement ce que je
lui demande.&lt;/p&gt;
&lt;p&gt;Je souhaitais intégrer (depuis quelque temps déjà) une commande similaire à
&lt;code&gt;sed&lt;/code&gt; : il arrive régulièrement sur IRC lorsque quelqu'un fasse
une erreur, il la corrige ensuite à l'aide d'une syntaxe sed. Le but du plugin
est de sortir la phrase originale modifiée. Un petit exemple :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;trashy&amp;gt; bojour les gens
&amp;lt;trashy&amp;gt; s/bojour/bonjour/
&amp;lt;MrBot&amp;gt; trashy voulait dire : bonjour les gens
&lt;/pre&gt;
&lt;p&gt;Et voilà ! :-p&lt;/p&gt;
&lt;p&gt;Cela dit, ça pose un problème, et de taille... Les plugins requis pour une
telle fonctionnalité n'existent pas sur Supybot (qui ne semble plus être
terriblement actif), mais a en revanche été intégrée à la version &lt;a href=&quot;http://sourceforge.net/apps/mediawiki/gribble/&quot; hreflang=&quot;en&quot; title=&quot;Supyot gribble&quot;&gt;Supybot Gribble&lt;/a&gt;. Je ne souhaitais pas utiliser cette
version qui n'existe pas dans les dépôts officiels ; mais j'ai constaté
qu'une &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=693664&quot; hreflang=&quot;en&quot; title=&quot;Demande de revue de supybot gribble pour intégration dans les dépôts Fedora&quot;&gt;revue
d'intégration de supybot-gribble dans les dépôts Fedora&lt;/a&gt; est en cours, et
que les plugins présents sur les dépôts ont également été modifiés en
conséquence ; il ne peut en effet y avoir que l'un des deux qui soit
installé.&lt;/p&gt;
&lt;p&gt;Je suis donc passé à cette version (les plugins supybot-fedora et
supybot-koji dans la version requise sont encore dans le dépôt updates-testing
à l'heure où j'écris ces lignes), rien à déclarer sauf que la commande
« sed like » fonctionne désormais &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Installation d'une instance Solr - Fedora-fr</title>
    <link>http://blog.ulysses.fr/index.php/post/22/05/2011/Installation-d-une-instance-Solr-Fedora-fr</link>
    <guid isPermaLink="false">urn:md5:e76fa013b1411221a7f0b8080e4f5f27</guid>
    <pubDate>Sun, 22 May 2011 13:10:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;J'ai déjà parlé ici même de la mise en place d'un système de recherche
alternatif pour la documentation francophone de Fedora, basé sur &lt;a href=&quot;http://lucene.apache.org/solr/&quot; hreflang=&quot;en&quot; title=&quot;Solr&quot;&gt;Solr&lt;/a&gt;, et
utilisable via une &lt;a href=&quot;http://fedoradoc.ulysses.fr&quot; hreflang=&quot;fr&quot; title=&quot;Recherche dans la documentation francophone de Fedora&quot;&gt;interface de recherche
PHP&lt;/a&gt; et &lt;a href=&quot;http://fedoradoc.ulysses.fr/mrbot.php&quot; hreflang=&quot;fr&quot; title=&quot;MrBot : bot IRC des canaux francophones Fedora&quot;&gt;un bot IRC&lt;/a&gt;.&lt;br /&gt;
Les annonces faisant suite à la &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/15/05/2010/Documentation-francophone%2C-IRC-et-recherches&quot; hreflang=&quot;fr&quot; title=&quot;Mise en place d'un système de recherche dans la doc Fedora-fr et d'un bot IRC&quot;&gt;
mise en place du système de recherche et du bot IRC&lt;/a&gt; ainsi que l'annonce de
la &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/26/05/2010/Recherche-dans-la-documentation-francophone-de-Fedora-%3A-le-round-PHP&quot; hreflang=&quot;fr&quot; title=&quot;Interface de recherche PHP pour la documentation francophone de Fedora&quot;&gt;mise
en ligne de l'interface de recherche PHP&lt;/a&gt; sont toutes deux disponibles dans
les archives de mon blog.&lt;/p&gt;
&lt;p&gt;J'expliquerai ici comment s'installe le système de recherche, et comment
indexer des données, je l'ai promis à un fantôme qui a passé du temps à essayer
d'installer ça sans grand succès &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Solr est une application web écrite en Java, qui nécessite l'installation et
la configuration d'un moteur de servlets. La distribution officielle de Solr
embarque une instance Jetty, mais j'ai préféré utiliser tomcat, que je connais
bien mieux &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
Sous Fedora, lancez simplement (en root) :&lt;/p&gt;
&lt;pre&gt;
# yum install tomcat6 tomcat6-webapps
&lt;/pre&gt;
&lt;p&gt;Lors de l'installation de ce paquet, un utilisateur nommé
&lt;code&gt;tomcat&lt;/code&gt; est créé, mais le compte n'est pas accessible par défaut.
Il est toutefois possible de s'y connecter en spécifiant le shell à
utiliser :&lt;/p&gt;
&lt;pre&gt;
# su -s /bin/bash tomcat
&lt;/pre&gt;
&lt;p&gt;Le reste des opération est à effectuer avec l'utilisateur
&lt;code&gt;tomcat&lt;/code&gt;. Si vous préférez ne pas utiliser les RPM de tomcat, vous
devrez vous assurer que l'utilisateur qui fera tourner le serveur a bien tous
les droits nécessaires dans les différents dossiers. Dans tous les cas, il
faudra procéder à une petite modification du fichier
&lt;code&gt;/etc/tomcat6/server.xml&lt;/code&gt; en raison de &lt;a href=&quot;http://wiki.apache.org/solr/SolrTomcat#URI_Charset_Config&quot; hreflang=&quot;en&quot; title=&quot;Problème d'encodage Tomcat/Solr&quot;&gt;certains problèmes d'encodage&lt;/a&gt;...
Cherchez le connecteur HTTP, et ajoutez l'attribut
&lt;code&gt;URIEncoding=&amp;quot;UTF-8&amp;quot;&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;Connector port=&amp;quot;8080&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; 
  connectionTimeout=&amp;quot;20000&amp;quot; 
  redirectPort=&amp;quot;8443&amp;quot;
  URIEncoding=&amp;quot;UTF-8&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Récupérez tout d'abord les fichiers de configuration propres à la
documentation francophone, le script d'installation et les outils nécessaires
sur mon dépôt mercurial (vous pouvez &lt;a href=&quot;http://hg.ulysses.fr/solr-config_fedora-fr/archive/tip.tar.bz2&quot;&gt;récupérer
directement une archive&lt;/a&gt;) :&lt;/p&gt;
&lt;pre&gt;
$ hg clone http://hg.ulysses.fr/solr-config_fedora-fr
&lt;/pre&gt;
&lt;p&gt;Vous obtiendrez un dossier avec le contenu suivant :&lt;/p&gt;
&lt;pre&gt;
$ cd solr-config_fedora-fr
$ ll
drwxrwxr-x. 4 trasher trasher    4096 21 mai   23:13 cores
-rwxrwxr-x. 1 trasher trasher     455 21 mai   23:33 install.sh
drwxrwxr-x. 2 trasher trasher    4096 21 mai   04:17 preprocess
-rw-rw-r--. 1 trasher trasher    2115 21 mai   23:43 README
-rw-rw-r--. 1 trasher trasher     230 21 mai   23:30 solr-tomcat-context.xml
&lt;/pre&gt;
&lt;p&gt;Dont voici un bref descriptif :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;dossier &lt;code&gt;cores&lt;/code&gt;  : contient la configuration de l'instance,
et contiendra aussi par la suite les données d'indexation de cette
instance,&lt;/li&gt;
&lt;li&gt;fichier &lt;code&gt;install.sh&lt;/code&gt; : script basique d'installation,&lt;/li&gt;
&lt;li&gt;dossier &lt;code&gt;preprocess&lt;/code&gt; : relatif à l'indexation, voir plus
bas ;),&lt;/li&gt;
&lt;li&gt;fichier README : est-ce utile de préciser ? :-D,&lt;/li&gt;
&lt;li&gt;fichier &lt;code&gt;solr-tomcat-context.xml&lt;/code&gt; : configuration de
l'application web dans tomcat.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le script d'installation effectue quelques tâches rébarbatives et basiques,
à savoir :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;télécharge les fichiers Solr (war et jar) depuis mon propre site (et non le
site officiel, l'archive officielle pèse environ 80Mo alors que nous n'avons
réellement besoin que de 9Mo...),&lt;/li&gt;
&lt;li&gt;copie les fichiers récupérés aux emplacements adéquats (dans le dossier
courant, bien entendu),&lt;/li&gt;
&lt;li&gt;modifie le fichier de contexte tomcat
(&lt;code&gt;solr-tomcat-context.xml&lt;/code&gt;) pour adapter les chemins,&lt;/li&gt;
&lt;li&gt;crée un lien symbolique nommé &lt;code&gt;solr.xml&lt;/code&gt; dans le dossier
&lt;code&gt;/etc/tomcat6/Catalina.localhost/&lt;/code&gt; vers le fichier de contexte. De
cette façon, lors du démarrage de tomcat, l'application sera déployée
automatiquement,&lt;/li&gt;
&lt;li&gt;modifie, dans la configuration de l'instance, le chemin vers le fichier des
données à indexer.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;À ce stade, vous devriez être en mesure d'accéder à l'application &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Pour
vérifier :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lancez le service :&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
service tomcat6 start &amp;amp;&amp;amp; tailf /var/log/tomcat6/catalina.out
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;vérifiez la sortie de la commande tail pour voir si des erreurs se sont
produites au démarrage de tomcat&lt;/li&gt;
&lt;li&gt;si tout est ok, vous devriez pouvoir accéder à l'application à l'adresse
:&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://localhost:8080/solr/&quot; title=&quot;http://localhost:8080/solr/&quot;&gt;http://localhost:8080/solr/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/solr_main.jpg&quot; alt=&quot;Page d'accueil de l'application Solr&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Page d'accueil de l'application Solr, mai 2011&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le lien vers l'interface d'administration de l'instance devrait vous amener
sur une page semblable à : &lt;a href=&quot;http://blog.ulysses.fr/public/solr-fedora-fr_doc-admin.jpg&quot; title=&quot;solr-fedora-fr_doc-admin.jpg&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.solr-fedora-fr_doc-admin_m.jpg&quot; alt=&quot;solr-fedora-fr_doc-admin.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;solr-fedora-fr_doc-admin.jpg, mai 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L'exécution de la requête par défaut ne renverra aucun résultat, et c'est
bien normal, nous n'avons pas encore traité les données. Allez, hop ! La
suite ! :-p&lt;/p&gt;
&lt;h2&gt;Indexation des données&lt;/h2&gt;
&lt;p&gt;Les données du wiki sur Fedora-fr.org sont stockées dans une base de données
MySQL. Il serait possible avec Solr d'indexer directement le contenu de cette
base, mais cela demandez bien entendu à avoir accès. Je ne souhaitais pas le
moins du monde ouvrir le port MySQL sur le serveur ; j'ai donc décidé de
passer par un dump.&lt;/p&gt;
&lt;p&gt;Puisque &lt;a href=&quot;http://jean-pierre-troll.blogspot.com/2011/05/xml-toutes-les-sauces.html&quot; hreflang=&quot;fr&quot; title=&quot;XML à toutes les sauces&quot;&gt;XML est utilisé à toutes les
sauces&lt;/a&gt;, que MediaWiki permet un export au format XML de ses données, et que
je travaille actuellement avec du XML/XSLT au quotidien, c'est tout
naturellement que j'ai choisi ce format :-p&lt;/p&gt;
&lt;p&gt;L'export côté MediaWiki s'effectue avec la commande :&lt;/p&gt;
&lt;pre&gt;
$ php {mediawiki}/maintenance/dumpBackup.php --conf {mediawiki}/LocalSettings.php --full --output=gzip:wiki.xml.gz
&lt;/pre&gt;
&lt;p&gt;Copiez le fichier &lt;code&gt;.gz&lt;/code&gt; résultant dans le dossier
&lt;code&gt;preprocess&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il aurait été possible de travailler directement sur l'export XML de
MediaWiki pour indexer les données, ça ne m'a pas semblé être un bon choix. En
effet, les informations récupérées pour les articles se cantonnent
principalement au titre et au contenu intégral. Plutôt limité alors que sur le
wiki, les articles sont attachés à des catégories, des macros pour stipuler les
auteurs et contributeurs de l'article sont utilisées, de même qu'un balisage
spécifique qui avait été mis en place il y a quelques années par Pascal pour
son export PDF de la documentation. Il était donc possible et surtout
intéressant d'enrichir nos index de recherche avec ce type d'informations.&lt;/p&gt;
&lt;p&gt;J'ai donc travaillé sur une feuille XSLT qui effectue les tâches
suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;suppression de toutes les anciennes révisions, seule la dernière version de
l'article nous importe ici,&lt;/li&gt;
&lt;li&gt;extraction de la liste des auteurs (macro &lt;code&gt;Auteur&lt;/code&gt; et
&lt;code&gt;Auteurs&lt;/code&gt;), contributeurs (liste des utilisateurs ayant édité
l'article), catégories, applications (balise &lt;code&gt;&amp;lt;app&amp;gt;&lt;/code&gt;) et
paquets (balise &lt;code&gt;&amp;lt;paquet&amp;gt;&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;récupération des noms (les comptes sur le wiki étant créés selon le schéma
&lt;code&gt;PrénomNom&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Une fois l'export XML récupéré depuis MediaWiki, il faut donc lui appliquer
les transformations XSL décrites dans le fichier
&lt;code&gt;preprocess/wiki.xsl&lt;/code&gt;. Cette feuille utilise des techniques
(notamment les expressions régulières) qui ne sont pas présentes dans la
version 1.0 de XSLT, mais uniquement en XSLT2... Les outils qui ne gèrent pas
XSLT2 (tels que &lt;code&gt;xsltproc&lt;/code&gt;) ne pourront pas être utilisés ; on
utilisera saxon :&lt;/p&gt;
&lt;pre&gt;
$ cd preprocess
$ gunzip -c --stdout wiki.xml.gz &amp;gt; wiki.xml
$ java -jar ./saxon9he.jar -t -s:wiki.xml -xsl:wiki.xsl -o:wiki_formatted.xml
&lt;/pre&gt;
&lt;p&gt;À titre d'exemple, vous pouvez consulter l'&lt;a href=&quot;http://blog.ulysses.fr/public/article_apache.xml&quot;&gt;export XML de l'article sur l'installation et la
configuration d'Apache&lt;/a&gt;, puis le &lt;a href=&quot;http://blog.ulysses.fr/public/article_apache_modifie.xml&quot;&gt;résultat de la transformation XSL
appliquée à cet article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;C'est bien entendu le fichier résultant de la transformation XSL que nous
allons indexer avec Solr. Le fichier XML (et, oui, encore du XML !)
&lt;code&gt;cores/doc/conf/wiki.xml&lt;/code&gt; définit la liens entre les éléments XML et
les index Solr configurés. Ce fichier indique aussi le chemin complet du
fichier contenant les données ; ce chemin a normalement été mis à jour
automatiquement si vous avez utilisé le script d'installation (vérifiez la
valeur de l'attribut &lt;code&gt;/dataConfig/document/entity/@url&lt;/code&gt; , il devrait
pointer sur le fichier &lt;code&gt;preprocess/wiki_formatted.xml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Maintenant que tout est bien configuré, que les chemins sont corrects, et
que l'export XML de MadiaWiki est passé à la moulinette XSLT ; il reste à
indexer les données, en appelant simplement l'URL :&lt;br /&gt;
&lt;a href=&quot;http://localhost:8080/solr/dataimport?command=full-import&quot;&gt;http://localhost:8080/solr/dataimport?command=full-import&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ces opérations sont « automatisées » dans le script
&lt;code&gt;indexation.sh&lt;/code&gt; fournit dans le projet Mercurial. Ce fichier me
permet de récupérer l'export XML sur le serveur defora-fr.org ; vous
devrez donc commenter les lignes &lt;code&gt;rsync&lt;/code&gt; et &lt;code&gt;gunzip&lt;/code&gt; pour
l'utiliser &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pour tester le fonctionnement, nous allons effectuer une recherche dans les
titres uniquement (champ &lt;code&gt;titleText&lt;/code&gt;) sur le terme
« network » ; qui devrait nous ramener les articles dont le titre
contient les termes « network » et « réseau » :&lt;br /&gt;
http://localhost:8080/solr/fedora-fr_doc/select/?q=titleText:network&amp;amp;version=2.2&amp;amp;start=0&amp;amp;rows=10&amp;amp;indent=on&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.ulysses.fr/public/solr_network_results.jpg&quot; title=&quot;Résultats de la recherche Solr network dans les titres&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.solr_network_results_m.jpg&quot; alt=&quot;Résultats de la recherche Solr network dans les titres&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Résultats de la recherche Solr network dans les titres, mai 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Qui ramène aujourd'hui 7 résultats &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;L'URL &lt;a href=&quot;http://localhost:8080/solr/admin/cores?action=STATUS&quot;&gt;http://localhost:8080/solr/admin/cores?action=STATUS&lt;/a&gt;
vous donnera des informations sur l'instance :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le nombre de documents indexés,&lt;/li&gt;
&lt;li&gt;la date de dernière modification des index,&lt;/li&gt;
&lt;li&gt;le chemin de stockage des données de l'index,&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et voilà ; l'instance Solr de recherche dans la documentation
francophone de Fedora est en place. Bien entendu, un système comme Solr apporte
de nombreuses fonctionnalités, qui ne sont pas forcément exploitées ici ;
pour de multiples installations par exemple, il serait bien plus efficace
d'utiliser les fonctions de réplication offertes par Solr, mais je n'ai pas
encore eu l'occasion d'y regarder.&lt;/p&gt;
&lt;p&gt;Voici quelques petites choses que Solr peut faire :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;affichage des résultats aux formats xml, csv, json, php, phps (php
sérialisé), ... Pour modifier le format de sortie, ajoutez (ou modifiez) le
paramètre d'URL &lt;code&gt;wt&lt;/code&gt; : &lt;code&gt;wt=php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;choix des informations affichées dans les résultats : lister les
champs voulus (séparés par une virgule) voulue avec le paramètre d'URL
&lt;code&gt;fl&lt;/code&gt; (field list) :
&lt;code&gt;fl=titleText,author,category&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;... &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je vous invite à consulter &lt;a href=&quot;http://lucene.apache.org/solr/features.html&quot; hreflang=&quot;en&quot; title=&quot;Fonctionnalités de Solr&quot;&gt;la liste des fonctionnalités de Solr&lt;/a&gt; pour en
savoir un peu plus sur le produit lui même, la &lt;a href=&quot;http://wiki.apache.org/solr/SolrQuerySyntax&quot; hreflang=&quot;en&quot; title=&quot;Syntaxe des requêtes Solr&quot;&gt;documentation concernant l'écriture de requêtes
Solr&lt;/a&gt;, et aussi &lt;a href=&quot;http://wiki.apache.org/solr/CommonQueryParameters&quot; hreflang=&quot;en&quot; title=&quot;Paramètres communs de requêtes&quot;&gt;la documentation des
paramètres communs de requêtes Solr&lt;/a&gt; pour aller un peu plus loin. L'&lt;a href=&quot;http://localhost:8080/solr/fedora-fr_doc/admin/form.jsp&quot;&gt;interface
d'administration de l'instance fournie par Solr&lt;/a&gt; peut également vous aider à
effectuer des recherches plus facilement &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>HTML5 et CSS3 pour le blog de Zia</title>
    <link>http://blog.ulysses.fr/index.php/post/20/05/2011/HTML5-et-CSS3-pour-le-blog-de-Zia</link>
    <guid isPermaLink="false">urn:md5:b86be07e82d2d48953d247a1c45181b1</guid>
    <pubDate>Fri, 20 May 2011 23:28:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>WebLand</category>
            
    <description>    &lt;p&gt;Voilà un peu plus de 3 ans maintenant que &lt;a href=&quot;http://zia.ulysses.fr&quot; hreflang=&quot;fr&quot; title=&quot;Le blog de Zia&quot;&gt;le blog de Zia&lt;/a&gt; est en ligne, le thème
datait de la même époque.&lt;/p&gt;
&lt;p&gt;J'ai récemment fait l'acquisition de l'excellent ouvrage &lt;a href=&quot;http://www.goetter.fr/livres/css-avancees/&quot; hreflang=&quot;fr&quot; title=&quot;CSS avancées vers HTML5 et CSS3 - Raphaël Goetter&quot;&gt;CSS avancées vers HTML5 et
CSS3&lt;/a&gt; de &lt;a href=&quot;http://www.goetter.fr&quot; hreflang=&quot;fr&quot; title=&quot;Raphaël Goetter&quot;&gt;Raphaël Goetter&lt;/a&gt;) - ouvrage que je vous recommande
vivement.&lt;/p&gt;
&lt;p&gt;J'avais déjà revu mon site personnel suite &lt;a href=&quot;http://www.alsacreations.com/article/lire/947-osez-creer-site-html5-css3.html&quot; hreflang=&quot;fr&quot; title=&quot;Alsacréations : Osez HTML5 et CSS3&quot;&gt;un article paru
sur Alsacréations&lt;/a&gt; (du même auteur, d'ailleurs ; et avec un
&lt;strong&gt;s&lt;/strong&gt; à Alsacréation&lt;strong&gt;s&lt;/strong&gt; ;-)) ; j'ai décidé de
tester de nouveau les possibilités de CSS3 pour effectuer une refonte complète
du &lt;a href=&quot;http://zia.ulysses.fr&quot; hreflang=&quot;fr&quot; title=&quot;Le blog de Zia&quot;&gt;blog de
ma fille&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.ulysses.fr/public/theme_zia_0.0.2.jpg&quot; title=&quot;Thème Zia (0.0.2)&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.theme_zia_0.0.2_m.jpg&quot; alt=&quot;Thème Zia (0.0.2)&quot; title=&quot;Thème Zia (0.0.2), mars 2008&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://blog.ulysses.fr/public/theme_zia_0.0.3.jpg&quot; title=&quot;Thème Zia (0.0.3)&quot;&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/.theme_zia_0.0.3_m.jpg&quot; alt=&quot;Thème Zia (0.0.3)&quot; title=&quot;Thème Zia (0.0.3), mai 2011&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ce résultat est valide HTML5, probablement pas CSS (grâce notamment à
l'utilisation des préfixes &lt;code&gt;-moz&lt;/code&gt; et &lt;code&gt;-webkit&lt;/code&gt; :-p), et
est certainement perfectible... Un petit « bémol » pour
Dotclear : la zone de recherche ne peut pas être modifiée via le système
de templates, il faut visiblement ouvrir le capot pour ce faire :'(&lt;br /&gt;
J'ai également constaté une chose qui m'a paru étrange : le texte
alternatif des images n'est pas affiché sur les navigateurs Webkit il
semblerait. J'ai pu observer ce comportement avec les navigateurs &lt;a href=&quot;http://projects.gnome.org/epiphany/&quot; hreflang=&quot;en&quot; title=&quot;Navigateur web Epiphany&quot;&gt;Epiphany&lt;/a&gt; et &lt;a href=&quot;http://www.twotoasts.de/index.php?/pages/midori_summary.html&quot; hreflang=&quot;en&quot; title=&quot;Navigateur web Midori&quot;&gt;Midori&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Côté compatibilité navigateurs, le site fonctionne de façon équivalente sous
Epiphany (et autres navigateurs à base Webkit) et IE9. Sous Firefox 4, on
obtient en prime un dégradé sur le menu principal &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; Le site est lisible sous
IE8, mais la perte des arrondis et couleurs transparentes se fait cruellement
sentir. J'ai décidé d'abandonner complètement le support IE7 et IE6 pour ce
thème ; laissons les vieilleries mourir en paix &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; Pas de version mobiles
pour le moment, je n'ai pas encore lu ce chapitre &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Merci à Pingou, Remi, number81, MrTom et ma petite femme pour leur aide et
leurs conseils &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Petite note complémentaire : c'est la première fois que j'utilise la
toute nouvelle interface d'administration apportée par &lt;a href=&quot;http://fr.dotclear.org/&quot; hreflang=&quot;fr&quot; title=&quot;Dotclear&quot;&gt;Dotclear&lt;/a&gt;
2.3.0 ; ça change et c'est agréable &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Bravo !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Fedora 15 : c'est parti !</title>
    <link>http://blog.ulysses.fr/index.php/post/01/05/2011/Fedora-15-%3A-c-est-parti-%21</link>
    <guid isPermaLink="false">urn:md5:50baac0eeab9eef68b67ebdedf100391</guid>
    <pubDate>Sun, 01 May 2011 20:50:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;C'est parti, en ce qui me concerne en tous cas &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;La version 15 de Fedora n'est pas encore sortie, elle n'est prévue que pour
25 mai à l'heure où j'écris ces lignes. Vous pouvez vérifier si la date a
changé sur &lt;a href=&quot;http://fedoraproject.org/wiki/Releases/15/Schedule&quot; hreflang=&quot;en&quot; title=&quot;le calendrier des versions de Fedora 15&quot;&gt;le calendrier des
versions de Fedora 15&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cependant, la version Beta est disponible au téléchargement depuis 19 avril,
et j'ai décidé d'y regarder de près. Je gère, entre le travail et la maison, 6
stations de travail qui tournaient sous Fedora 14 ; j'ai commencé par
migrer la moins critique d'entre elles (qui sert très peu à vrai dire),
principalement pour pouvoir me faire une idée de &lt;a href=&quot;http://gnome3.org/&quot; hreflang=&quot;en&quot; title=&quot;Gnome 3&quot;&gt;Gnome 3&lt;/a&gt; (et de &lt;a href=&quot;https://live.gnome.org/GnomeShell&quot; hreflang=&quot;en&quot; title=&quot;gnome shell&quot;&gt;gnome-shell&lt;/a&gt; évidemment !).&lt;br /&gt;
Mes précédentes expériences avec gnome-shell n'étaient pas des plus positives,
car elles dataient des vieilles versions disponibles dans les dépôts de Fedora
14, ou via jhbuild (qui ne fonctionnait pas à tous les coups), et qui était de
toutes façons une version de développement.&lt;/p&gt;
&lt;p&gt;Ces versions plus anciennes, ont pu me donner un aperçu de ce que serait
gnome 3, mais ce n'était pas forcément très bien intégré au système en place.
La première mise en route de Fedora 15 Beta m'a conquis. Certains aiment Gnome
3, d'autres pas... Moi, j'aime.&lt;br /&gt;
J'ai été utilisateur de KDE pendant des années, pour me détourner de ce
gestionnaire de bureau petit à petit à l'arrivée de KDE4 et des programmes qui
suivaient (à commencer par &lt;a href=&quot;http://amarok.kde.org/&quot; hreflang=&quot;en&quot; title=&quot;Amarok&quot;&gt;Amarok&lt;/a&gt; que j'ai remplacé par &lt;a href=&quot;http://gmusicbrowser.org/&quot; hreflang=&quot;en&quot; title=&quot;gmusicbrowser&quot;&gt;gmusicbrowser&lt;/a&gt;, puis &lt;a href=&quot;http://userbase.kde.org/Akregator&quot; hreflang=&quot;en&quot; title=&quot;akregator&quot;&gt;akregator&lt;/a&gt; remplacé par &lt;a href=&quot;http://liferea.sourceforge.net/&quot; hreflang=&quot;en&quot; title=&quot;Liferea&quot;&gt;liferea&lt;/a&gt;,
etc, et enfin KDE lui même remplacé par Gnome après plusieurs versions - j'ai
testé quand même). Mon épouse aime aussi, et son poste de travail fut le
suivant à migrer.&lt;/p&gt;
&lt;p&gt;Mon poste de travail au bureau « n'a pas supporté » la
migration... Mon dossier home est sur un volume LVM chiffré à part, et n'est
pas monté automatiquement au démarrage ; ce dernier ne se termine pas
&lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Les 4 autres postes sont passés sans soucis ; une fois exécuté un
&lt;code&gt;yum remove \*nvidia\*&lt;/code&gt; pour supprimer définitivement les appels aux
pilotes propriétaires qui étaient nécessaires sur ces postes sous Fedora 14.
Une décision que je n'ai pas eue à regretter, toutes mes cartes semblent bien
fonctionner pour gnome-shell avec les pilotes nouveau.&lt;/p&gt;
&lt;p&gt;La mise à jour de ma machine personnelle est toujours un peu plus critique,
beaucoup de services, de fichiers, etc. dont j'ai besoin en dépendent. C'est
donc celle là qui est passée en dernier, pour me réserver deux jolies
surprises...&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/gs.jpg&quot; alt=&quot;Mon bureau gnome-shell&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Mon bureau gnome-shell, mai 2011&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Tout d'abord, le paquet &lt;em&gt;python-urwid&lt;/em&gt; n'a pas pu être mis à jour.
C'était environ le 1800ème sur 2200 ! Il a juste suffit que je relance le
processus de mise à jour, et les seuls paquets restants ont alors été
téléchargés et installés avec succès. Il est à noter que le processus de mise à
jour fonctionne comme yum : il installe le paquet dans un premier temps,
et nettoie dans un second temps. Pour les 1800 premiers paquets, le nettoyage
n'avait pas été fait, la commande &lt;code&gt;package-cleanup --cleandupes&lt;/code&gt; me
les a supprimés (exécutée depuis l'installation chrootée en mode rescue ;
vous comprendrez rapidement pourquoi).&lt;/p&gt;
&lt;p&gt;Le second problème, et non des moindres : un kernel panic au démarrage.
Aie. Cela m'a remémoré mon premier contact avec Fedora, FC 2 à l'époque, pour
laquelle j'avais du reconstruire le initrd du média d'installation, ce dernier
ne fonctionnait pas sur la carte mère que je possédais... Sympathique souvenir,
mais je préfère toujours éviter ce genre d'ennuis &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/gs-usermenu.jpg&quot; alt=&quot;Menu utilisateur&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Menu utilisateur, mai 2011&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Après moult tests et corrections (notamment les
&lt;code&gt;package-cleanup&lt;/code&gt;), je n'avais toujours pas réussi à corriger le
souci, et j'ai tenté en dernière instance un &lt;code&gt;yum reinstall kernel&lt;/code&gt;
qui a fonctionné à merveille, et me permet depuis de profiter gentillement de
ma toute nouvelle Fedora 15, ainsi que de participer à la rédaction d'un
&lt;a href=&quot;http://doc.fedora-fr.org/wiki/GNOME3&quot; hreflang=&quot;fr&quot; title=&quot;Gnome 3 - Documentation Francophone de Fedora&quot;&gt;article sur gnome 3/gnome-shell
sur le wiki de fedora-fr.org&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Prosody 0.8 pour Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/16/04/2011/Prosody-0.8-pour-Fedora</link>
    <guid isPermaLink="false">urn:md5:701b9de237cdb4143c168308c24eb3e6</guid>
    <pubDate>Sat, 16 Apr 2011 13:39:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Il y a quelque temps, j'annonçais ici même &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/23/02/2011/Prosody-%28serveur-Jabber%29-sur-Fedora&quot;&gt;la
disponibilité de paquets RPM pour Prosody&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;J'ai très récemment mis à jour &lt;code&gt;prosody&lt;/code&gt; en version 0.8 sur
&lt;a href=&quot;http://rpms.ulysses.fr/&quot;&gt;le dépôt trashy&lt;/a&gt;, et ajouté aujourd'hui le
paquet &lt;code&gt;lua-dbi&lt;/code&gt; nécessaire pour utiliser le stockage en base de
données.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.prosody.im/prosody-0-8-0-released/&quot; hreflang=&quot;en&quot;&gt;Prosody 0.8&lt;/a&gt; apporte plusieurs fonctionnalités, dont deux m'intéressent
plus particulièrement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://prosody.im/doc/modules/mod_auth_internal_hashed&quot; hreflang=&quot;en&quot;&gt;le stockage des mots de passe&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://prosody.im/doc/storage&quot; hreflang=&quot;en&quot;&gt;le stockage des
informations en base de données&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour &lt;a href=&quot;http://prosody.im/doc/configure&quot; hreflang=&quot;en&quot;&gt;modifier la
configuration de Prosody&lt;/a&gt;, il suffira d'éditer le fichier
&lt;code&gt;/etc/prosody/prosody.cfg.lua&lt;/code&gt; en fonction de vos besoins &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; des paquets sont disponibles sur mon dépôt pour
EL-5, mais je n'ai pas eu l'occasion de les tester (mes serveurs jabber
tournent tous sous Fedora 14 actuellement). Si prosody venait à ne pas
fonctionner correctement, n'hésitez pas à me le faire savoir &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Réseau en mode bridge avec KVM sous F-14</title>
    <link>http://blog.ulysses.fr/index.php/post/27/02/2011/KVM-et-bridge</link>
    <guid isPermaLink="false">urn:md5:2abf5e66dd9a054b82c1a64b731382c4</guid>
    <pubDate>Sun, 27 Feb 2011 17:25:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Depuis un certain temps maintenant, j'utilise les fonctionnalités de
virtualisation offertes de base par Fedora, à savoir : KVM/Qemu, libvirt
et les outils virt-manager, virsh, etc.&lt;/p&gt;
&lt;p&gt;Par défaut, les machines virtuelles utiliseront un réseau NAT avec un sous
réseau &lt;code&gt;192.168.122.0&lt;/code&gt;. J'ai voulu récemment que le routeur de mon
réseau local s'occupe d'attribuer une adresse IP à l'une de mes machines
virtuelles ; il fallait donc revoir la configuration du réseau pour passer
en mode bridge sur mon unique carte réseau.&lt;/p&gt;
&lt;p&gt;Sous Fedora 14 ; une partie du travail est déjà faite... La
configuration par défaut ajoute une interface nommée &lt;code&gt;virbr0&lt;/code&gt; que
nous allons pouvoir utiliser en tant que bridge.&lt;/p&gt;
&lt;p&gt;Pour ce faire, on va créer le fichier de configuration pour l'interface
&lt;code&gt;virbr0&lt;/code&gt; (&lt;code&gt;/etc/sysconfig/network-scripts/ifcfg-virbr0&lt;/code&gt;)
avec le contenu suivant :&lt;/p&gt;
&lt;pre&gt;
DEVICE=virbr0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Bridge
USERCTL=yes
NM_CONTROLLED=no
IPV6INIT=no
NAME=&amp;quot;bridge&amp;quot;
PEERNTP=yes
&lt;/pre&gt;
&lt;p&gt;Ici, on spécifie entre autres qu'il s'agit d'un bridge et que la
configuration se fait par DHCP (puisque c'est mon routeur qui doit se charger
de ça).&lt;/p&gt;
&lt;p&gt;Ensuite, on indiquera à l'interface &lt;code&gt;eth0&lt;/code&gt; qu'elle doit utiliser
le bridge , en ajoutant à la fin du fichier
&lt;code&gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
 BRIDGE=virbr0
&lt;/pre&gt;
&lt;p&gt;Un petit &lt;code&gt;service network restart&lt;/code&gt; après, on peut constater que
les adresses IP des machines virtuelles sont désormais gérées par le routeur,
ainsi que l'attribution d'adresses IP fixes en fonction des adresses MAC,
etc.&lt;/p&gt;
&lt;p&gt;Notez que la configuration énoncée ici se réfère à l'utilisation du service
&lt;code&gt;network&lt;/code&gt;, et non &lt;code&gt;NetworkManager&lt;/code&gt;. Il faudra donc
veiller à ce que ce dernier soit désactivé au profit du service
&lt;code&gt;network&lt;/code&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Prosody (serveur Jabber) sur Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/23/02/2011/Prosody-%28serveur-Jabber%29-sur-Fedora</link>
    <guid isPermaLink="false">urn:md5:03ac0209a553b01e729ea729396893df</guid>
    <pubDate>Wed, 23 Feb 2011 09:16:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Depuis pas mal de temps, j'ai un serveur Jabber qui tourne sur ma machine
personnelle, j'avais mis en place ce service à l'origine pour pouvoir discuter
en réseau local avec mon voisin de l'époque lorsque notre accès internet était
planté (ce qui arrivait souvent :-p).&lt;/p&gt;
&lt;p&gt;J'ai utilisé &lt;a href=&quot;http://codex.xiaoka.com/wiki/jabberd2:start&quot; hreflang=&quot;en&quot;&gt;Jabberd2&lt;/a&gt; pendant des années, il me convenait parfaitement.&lt;/p&gt;
&lt;p&gt;L'an dernier, j'ai décidé d'en changer pour voir un peu ce qui se faisait
ailleurs, je me suis initialement tourné vers &lt;a href=&quot;http://www.ejabberd.im/&quot; hreflang=&quot;en&quot;&gt;ejabberd&lt;/a&gt; qui est présent dans les dépôts Fedora. Seulement
voilà, je ne suis pas parvenu à m'y faire &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
Les possibilités offertes par eJabberd sont prometteuses, il semble que ce soit
un bon système ; mais que je ne suis pas parvenu à utiliser correctement.
À plusieurs reprises par exemple, je me suis retrouvé avec un service ejabberd
qui refusait de se lancer, les raisons en étant souvent très obscures (en ce
qui me concerne en tous cas).&lt;br /&gt;
Bref, je n'ai pas accroché, ça arrive &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;C'est alors que j'ai entendu parler de &lt;a href=&quot;http://prosody.im/&quot; hreflang=&quot;en&quot;&gt;Prosody&lt;/a&gt;, un autre serveur XMPP qui n'était malheureusement
pas disponible dans les dépôts Fedora. J'ai donc décidé d'en faire un paquet à
soumettre aux dépôts (voir &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551765&quot; hreflang=&quot;en&quot;&gt;la demande
de revue de Prosody&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;J'utilise Prosody depuis, et j'avoue en être très content &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Un bémol cependant... Pour le support SSL, Prosody se base sur lua-sec, qui
n'est pas présent non plus dans les dépôts, il fallait donc l'y soumettre (voir
&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551763&quot; hreflang=&quot;en&quot;&gt;la
demande de revue pour lua-sec&lt;/a&gt;). Le problème se situe ici ; lua-sec
duplique des fonctionnalités apportées par lua-socket, présent dans les dépôts
et dont lua-sec dépend également par ailleurs. Vous pourrez trouver d'avantage
de détails à ce sujet dans la demande de revue, notamment &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=551763#c2&quot; hreflang=&quot;en&quot;&gt;les
commentaires de Adam Goode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Maintenant que je ne maintiens plus aucun paquet dans les dépôts
Fedora ; ces deux revues deviennent orphelines &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Puisque je continue d'utiliser ce serveur moi même, les &lt;a href=&quot;http://rpms.ulysses.fr/&quot; hreflang=&quot;fr&quot;&gt;paquets Prosody et lua-sec sont
disponibles dans mon dépôt personnel&lt;/a&gt; ; les dernières versions sont
disponibles via bitbucket :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bitbucket.org/trashy/rpm/src/c44f843cde0a/lua-sec/lua-sec.spec&quot; hreflang=&quot;en&quot;&gt;le fichier SPEC pour lua-sec&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bitbucket.org/trashy/rpm/src/c44f843cde0a/prosody/prosody.spec&quot; hreflang=&quot;en&quot;&gt;le fichier SPEC pour Prosody&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Évidemment, si quelqu'un se sentait l'âme aventureuse, il pourrait proposer
ces paquets en se basant sur le travail déjà effectué &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>mercurial-server sous Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/18/02/2011/mercurial-server-sous-Fedora</link>
    <guid isPermaLink="false">urn:md5:752fbb209b8f9a29480d14e0eea0316d</guid>
    <pubDate>Fri, 18 Feb 2011 23:19:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Depuis quelque temps déjà, je souhaitais utiliser SSH plutôt que HTTPS pour
effectuer des commits sur &lt;a href=&quot;http://hg.ulysses.fr&quot; hreflang=&quot;fr&quot;&gt;mon
dépôt Mercurial&lt;/a&gt;. Plusieurs solutions sont proposées dans la &lt;a href=&quot;http://mercurial.selenic.com/wiki/SharedSSH&quot; hreflang=&quot;en&quot;&gt;documentation de
Mercurial&lt;/a&gt;. J'ai été séduit par les fonctionnalités de mercurial-server et
j'ai décidé de l'utiliser.&lt;/p&gt;
&lt;p&gt;Le nom &lt;code&gt;mercurial-server&lt;/code&gt; est trompeur ; car il ne s'agit en
aucun cas d'un serveur. Les accès au compte utilisateur dédié sont simplement
gérés par SSH avec un fichier &lt;code&gt;authorized_keys&lt;/code&gt;, tandis que des
&lt;a href=&quot;http://fr.wikipedia.org/wiki/Hook_%28informatique%29&quot; hreflang=&quot;fr&quot;&gt;hooks&lt;/a&gt; mercurial vérifient ensuite les permissions de l'utilisateur à
qui appartient la clé.&lt;/p&gt;
&lt;p&gt;Le paquet n'étant pas disponible dans les dépôts Fedora, j'ai donc décidé de
le faire, et de le mettre sur &lt;a href=&quot;http://rpms.ulysses.fr/&quot; hreflang=&quot;fr&quot;&gt;mon dépôt personnel (le dépôt « trashy »)&lt;/a&gt; dans un premier temps.
Dans un second temps, il devrait être proposé (mais pas par moi) pour inclusion
aux dépôts officiels.&lt;/p&gt;
&lt;p&gt;Le &lt;a href=&quot;https://bitbucket.org/trashy/rpm/src/c44f843cde0a/mercurial-server/mercurial-server.spec&quot; hreflang=&quot;fr&quot;&gt;fichier mercurial-server.spec&lt;/a&gt; est disponible, ainsi que
&lt;a href=&quot;http://rpms.ulysses.fr/SRPMS/mercurial-server-1.1-5.fc14.trashy.src.rpm&quot; hreflang=&quot;en&quot;&gt;le fichier SRPM&lt;/a&gt;. Vous pouvez, si vous souhaitez utiliser
directement mercurial-server, utiliser mon dépôt personnel :&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'yum install --nogpgcheck http://rpms.ulysses.fr/fedora/trashy-release-14.rpm
$ su -lc 'yum --enablerepo=trashy install mercurial-server'
&lt;/pre&gt;
&lt;p&gt;Les RPM de mercurial-server sont disponibles et testés pour Fedora 14, ce
sont ceux que j'utilise moi même.&lt;/p&gt;
&lt;p&gt;Vous voilà donc parés... Bon, d'accord, on fait quoi maintenant ? On
lit la doc, pardi ! &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt; La &lt;a href=&quot;http://dev.lshift.net/paul/mercurial-server/docbook.html&quot; hreflang=&quot;en&quot;&gt;documentation de mercurial-server&lt;/a&gt; vous aidera dans les tâches
principales de gestion et d'administration de vos dépôts mercurial. Par défaut,
les dépôts sont stockés dans &lt;code&gt;/var/lib/mercurial-server/repos/&lt;/code&gt;, la
configuration dans &lt;code&gt;/etc/mercurial-server/&lt;/code&gt;. Un utilisateur dédié,
&lt;code&gt;hgserver&lt;/code&gt; est créé lors de l'installation du paquet, son dossier
home est défini à &lt;code&gt;/var/lib/mercurial-server&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La configuration de mercurial-server peut se faire de deux façons,
cumulatives qui plus est :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;utilisation de l'arborescence dans
&lt;code&gt;/etc/mercurial-server/&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;utilisation d'une arborescence similaire, mais au sein du module
&lt;code&gt;hgadmin&lt;/code&gt; créé lors de l'installation du paquet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentation officielle indique que si les deux méthodes sont utilisées
conjointement, les règles des fichiers de configuration système auront la
précédence sur ceux qui se trouvent dans le dépôt mercurial
&lt;code&gt;hgadmin&lt;/code&gt;. Il est également possible de supprimer complètement les
fichiers de configuration du côté du système et n'utiliser que le dépôt
&lt;code&gt;hgadmin&lt;/code&gt;. Cette technique peut vous permettre de déléguer
intégralement la gestion des droits des dépôts à quelqu'un sans pour autant lui
donner un accès root sur le serveur (c'est l'une des choses que j'ai trouvées
intéressantes &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;p&gt;Voyons un peu les différents chemins et fichiers utilisés par
mercurial-server qui nous seront utiles par la suite :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/etc/mercurial-server&lt;/code&gt; : l'ensemble des fichiers de
configuration :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;access.conf&lt;/code&gt; : configuration des autorisations d'accès.
Par défaut, ce fichier autorise par défaut les utilisateurs 'root' à tout
faire, interdit aux autres l'accès au dépôt hgadmin, et enfin autorise l'accès
en écriture à tous les autres projets aux 'users'.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hgadmin-hgrc&lt;/code&gt; : il s'agit du fichier de configuration du
dépôt hgadmin, qui déclenche principalement les hooks mercurial (ce sont eux
qui mettront à jour le fichier &lt;code&gt;authorized_keys&lt;/code&gt; lors d'un commit
sur le projet &lt;code&gt;hgadmin&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;&lt;code&gt;keys&lt;/code&gt; : dossier qui contient les clés des différents
utilisateurs,&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/var/lib/mercurial-server&lt;/code&gt; : le dossier des données, qui
est aussi le répertoire home de l'utilisateur hgserver :
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;repos&lt;/code&gt; : les dépôts mercurial eux-mêmes. Après
installation, seul le dépôt &lt;code&gt;hgadmin&lt;/code&gt; sera présent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pensez tout de suite à créer le dossier
&lt;code&gt;/var/lib/mercurial-server/.ssh&lt;/code&gt; et donnez lui les droits
adéquats :&lt;/p&gt;
&lt;pre&gt;
$ su -lc 'su -s /bin/bash hgserver'
$ mkdir .ssh
$ chmod 600 .ssh
&lt;/pre&gt;
&lt;p&gt;En effet, mercurial-server utilise uniquement les possibilités de SSH pour
gérer les accès entrants, il récrit donc le fichier
&lt;code&gt;.ssh/authorized_keys&lt;/code&gt; à chaque commit dans le dépôt hgadmin. Si le
dossier .ssh n'existe pas, le programme ne le crée pas actuellement. Il faut
que les droits sur le dossier soient corrects pour que l'authentification par
clé fonctionne correctement. Normalement, le RPM de mon dépôt applique la règle
SELinux adéquate au dossier .ssh ; mais il arrive que cela échoue.
Vérifiez le contexte SELinux du dossier :&lt;/p&gt;
&lt;pre&gt;
$ ls -alZ .ssh
drwx------. hgserver hgserver system_u:object_r:ssh_home_t:s0  .
&lt;/pre&gt;
&lt;p&gt;Si le contexte est bien &lt;code&gt;ssh_home_t&lt;/code&gt;, tout est correct. Dans le
cas contraire, les commandes suivantes - en root - suffiront (référez-vous à
&lt;a href=&quot;http://doc.fedora-fr.org/wiki/SELinux&quot; hreflang=&quot;fr&quot;&gt;l'article SELinux
sur la documentation francophone de Fedora&lt;/a&gt; pour en savoir plus) :&lt;/p&gt;
&lt;pre&gt;
# semanage fcontext -a -t ssh_home_t '/var/lib/mercurial-server/.ssh(/.*)?'
# restorecon -R -v /var/lib/mercurial-server/.ssh
&lt;/pre&gt;
&lt;p&gt;Étape suivante : déclarer un utilisateur 'root', au sens de
mercurial-server, évidemment. Regardons un peu le contenu du fichier
&lt;code&gt;access.conf&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;
init user=root/**
deny repo=hgadmin
write user=users/**
&lt;/pre&gt;
&lt;p&gt;Examinons un peu ces règles pour comprendre ce que nous allons faire,
gardons en tête qu'elles sont lues ligne par ligne, et que la première qui
match a gagné :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init user=root/**&lt;/code&gt; : accorde les droits &lt;code&gt;init&lt;/code&gt;
aux utilisateurs dont les clés se trouvent dans le dossier &lt;code&gt;root&lt;/code&gt; et
ses sous dossiers. L'accès &lt;code&gt;init&lt;/code&gt; permet la création de nouveaux
dépôts, et implicitement les droits en écriture.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deny repo=hgadmin&lt;/code&gt; : interdit l'accès au dépôt
&lt;code&gt;hgadmin&lt;/code&gt; ; il n'y a donc que les utilisateurs
&lt;code&gt;root&lt;/code&gt; qui pourront accéder au dépôt hgadmin.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;write user=users/**&lt;/code&gt; : autorise l'accès en écriture dans
l'ensemble des dépôts (hors &lt;code&gt;hgadmin&lt;/code&gt;, comme nous venons de le voir)
pour les utilisateurs dont la clé se trouve dans le dossier &lt;code&gt;users&lt;/code&gt;
et ses sous-dossiers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Créez-vous un dossier spécifique en tant que root, dans lequel vous pourrez
placer les clés de vos différentes machines (&lt;code&gt;trasher&lt;/code&gt; est ici le
login, et &lt;code&gt;odysseus&lt;/code&gt; le nom de la machine) :&lt;/p&gt;
&lt;pre&gt;
# mkdir keys/root/trasher
# vim keys/root/trasher/odysseus
&lt;/pre&gt;
&lt;p&gt;Vous placerez dans le fichier &lt;code&gt;odysseus&lt;/code&gt; la partie publique de
votre clé SSH. Ces instructions sont valables pour configurer mercurial-server
côté système ou par le dépôt hgadmin. La différence fondamentale, c'est que le
commit déclenchera le hook adapté, et donc la mise à jour du fichier
authorized_keys. Ce n'est pas le cas côté système (évidemment &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; ), il faut
donc dans ce cas lancer la commande suivante :&lt;/p&gt;
&lt;pre&gt;
# sudo -u hgserver /usr/share/mercurial-server/refresh-auth
&lt;/pre&gt;
&lt;p&gt;Voilà, votre clé est ajoutée, on va pouvoir l'utiliser ! Sur le poste
client où est disponible votre clé, vous devriez être en mesure de cloner le
dépôt &lt;code&gt;hgadmin&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;
$ hg clone ssh://hgserver@{host}/hgadmin
&lt;/pre&gt;
&lt;p&gt;Ce dépôt ne comprend rien d'autre au départ que la configuration qui lui est
nécessaire. Vous pourrez ajouter ici des dossiers et fichiers selon le même
schéma que dans &lt;code&gt;/etc/mercurial-server/&lt;/code&gt; &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pour autoriser un nouvel utilisateur nommé &lt;code&gt;toto&lt;/code&gt; à accéder à un
dépôt spécifique (&lt;code&gt;projet&lt;/code&gt;) en écriture, il faudra (par exemple)
copier sa clé dans le fichier &lt;code&gt;keys/toto&lt;/code&gt; ; et ajouter l'entrée
&lt;code&gt;write user=toto repo=projet&lt;/code&gt; dans le ficheir
&lt;code&gt;access.conf&lt;/code&gt;. Le commit déclenchera les hooks adaptés, autorisant
l'accès.&lt;/p&gt;
&lt;p&gt;Une petite note pour finir : si vous souhaitez rendre vos dépôts
accessibles en lecture par le web, ça ne pose aucun problème (même les
contextes SELinux permettent ça sans modification particulière). En revanche,
une telle méthode lit directement les répertoires sur le disque ; rendant
possible la récupération du projet &lt;code&gt;hgadmin&lt;/code&gt; ! Afin d'éviter
que ça ne se produise, les droits sur ce dépôt particulier sont fixés à 600
lors de la création initiale du dépôt par le paquet RPM ; l'utilisateur
apache ne pourra ainsi pas le lire &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ces quelques instructions vous auront permis de commencer à utiliser
&lt;code&gt;mercurial-server&lt;/code&gt;, la &lt;a href=&quot;http://dev.lshift.net/paul/mercurial-server/docbook.html&quot; hreflang=&quot;en&quot;&gt;documentation officielle&lt;/a&gt; vous aidera à comprendre ses mécanismes pour
aller plus loin et exploiter au mieux les possibilités de ce programme.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Goudebaille Fedora</title>
    <link>http://blog.ulysses.fr/index.php/post/29/12/2010/Goudebaille-Fedora</link>
    <guid isPermaLink="false">urn:md5:5ddadaa2448ab4473d98128853538c34</guid>
    <pubDate>Thu, 30 Dec 2010 00:21:00 +0100</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://blog.ulysses.fr/public/bye_fedora.jpg&quot; alt=&quot;bye_fedora.jpg&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;bye_fedora.jpg, déc. 2010&quot; /&gt;
Depuis un certain temps déjà, je me rend compte que ma motivation s'amenuise et que j'ai de plus en plus de mal à assumer certains rôles que j'ai endossés. Cela est dû principalement à des problèmes d'ordre professionnel, et aussi à un certain désintérêt de ma part pour Fedora ces temps-ci.&lt;/p&gt;


&lt;p&gt;Non pas que je renie Fedora, ou que la distribution ou encore sa philosophie ne m'intéresse plus ; mais - pour paraphraser Remi - « Il n'y a plus assez de plaisir » : j'ai fini par m'ennuyer et par ne plus avoir envie de contribuer comme je le faisais jusqu'à présent.&lt;/p&gt;


&lt;p&gt;Peut-être que ce sera juste passager, peut-être pas... Je n'en sais encore rien aujourd'hui. J'ai en tous cas annoncé officiellement plus tôt dans la soirée que &lt;a href=&quot;http://lists.fedoraproject.org/pipermail/devel/2010-December/147508.html&quot; hreflang=&quot;en&quot;&gt;je cessais de maintenir mes paquets actuels dans les dépôts Fedora&lt;/a&gt;. J'ai également annoncé que &lt;a href=&quot;http://mailing-list.fedora-fr.org/pipermail/fedora-fr-doc/2010-December/005893.html&quot; hreflang=&quot;fr&quot;&gt;j'allais cesser de m'occuper de la documentation fedora-fr.org&lt;/a&gt; dans le courant du premier trimestre 2011.&lt;/p&gt;


&lt;p&gt;Certains des pauvres paquets orphelins que je maintenais jusqu'ici ont dores et déjà trouvé quelqu'un qui prendra grand soin d'eux. Ce n'est malheureusement pas le cas pour tous ; aussi, je vous invite - si vous êtes intéressés - à demander la maintenance de ceux qui n'ont pas encore été récupérés.&lt;/p&gt;


&lt;p&gt;Quant à la documentation... C'est une autre paire de manches.&lt;/p&gt;


&lt;p&gt;J'entends souvent dire (ou plutôt devrais-je dire « je lis souvent ») : « Je n'ai pas les compétences. ». Bien essayé, jolie excuse. Mais sachez que je ne les ai pas non plus. J'ai commencé à utiliser MediaWiki le jour où nous l'avons installé sur fedora-fr.org pour remplacer l'ancien système (qui était loin d'être satisfaisant). Dans le genre gourou, on a fait mieux &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
Je ne prétend pas que c'est de tout repos, il y a tout de même un certain temps (voire un temps certain) à consacrer à tout cela de manière occasionnelle ; si tout était simple, ce billet n'aurait même pas lieu d'être ! &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Enfin, la situation géographique qui est la mienne depuis deux ans (Bordeaux) ne me permettait plus de me déplacer aussi facilement pour les évènements et autres qu'auparavant... Il m'était possible de faire Lille-Paris en une heure... Bordeaux-Paris ; c'est 3 à 4 heures minimum ; c'est ingérable au vu de ma situation professionnelle et familiale. Depuis lors, je n'étais plus vraiment en mesure d'assurer mon rôle d'ambassadeur Fedora ; je ne fais plus partie de cette joyeuse équipe de façon officielle à compter de ce soir.&lt;/p&gt;


&lt;p&gt;Finalement, un petit mot sur l'illustration du billet... N'y cherchez pas une signification profonde quelconque, je cherchais juste à illustrer un peu ce billet ; et cette idée de montage m'a fait rire &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Fedora-fr : 6 ans déjà !</title>
    <link>http://blog.ulysses.fr/index.php/post/06/09/2010/Fedora-fr-%3A-6-ans-d%C3%A9j%C3%A0-%21</link>
    <guid isPermaLink="false">urn:md5:8fc2dc03f69d09a464a539a8592915c0</guid>
    <pubDate>Thu, 21 Oct 2010 08:28:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Le site &lt;a href=&quot;http://fedora-fr.org&quot; hreflang=&quot;fr&quot;&gt;Fedora-fr&lt;/a&gt; existe depuis un peu plus de 6 ans (il se nommait d'ailleurs à cette époque « fedora-france », mais je ne m'y suis pas inscrit dès le départ. En effet, lors de la sortie de Fedora Core 1 (5 novembre 2003 - ça ne me rajeunit guère !) ; j'utilisais RedHat 9 et j'avoue avoir été un peu frileux à l'idée de changer...&lt;/p&gt;


&lt;p&gt;Je me suis décidé à migrer quelque temps après la sortie de Fedora Core 2 (18 mai 2004), une fois l'image d'installation modifiée pour mes besoins (la carte mère que je possédais à l'époque posait problème avec le noyau de base sur le CD d'installation de Fedora Core 2 !!).&lt;/p&gt;


&lt;p&gt;Bref... J'ai découvert en cours de route le site de fedora-fr ; et me suis inscrit sur leurs forums, le 21 octobre 2004. &lt;em&gt;J'avais mis un doigt dans l'engrenage. Je ne le savais pas...&lt;/em&gt;&lt;br /&gt;
C'est à peu près à la même époque que j'ai « redécouvert IRC » (j'avais un peu exploré ça à la fac :-p) via le canal #fedora-fr sur FreeNode. &lt;em&gt;La main était dans l'engrenage...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;De fil en aiguille, j'ai commencé à passer de plus en plus de temps sur le canal IRC sur lequel j'ai fini par faire la connaissance de &lt;a href=&quot;http://blog.mrtomlinux.org/&quot; hreflang=&quot;fr&quot;&gt;MrTom&lt;/a&gt;, à cette époque manager de l'équipe de traduction en français de Fedora. Il a évidemment eut vite fait de m'enrôler à cette tâche ô combien ingrate qu'est la traduction ! &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; &lt;em&gt;Et hop, après la main, le bras...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Je me suis de plus en plus investit dans la communauté francophone de Fedora ; pour finir - en décembre 2005 - par reprendre la responsabilité éditoriale de la documentation, et aider à la maintenance du serveur de Fedora-fr, Borsalino. Ce fut une tâche peu aisée, il fallait d'une part mettre en place l'infrastructure technique adéquate (nous nous somme arrêtés sur l'utilisation MediaWiki alors que le projet Fedora utilisait encore MoinMoin), d'autre part récupérer la documentation existante, et enfin d'ajouter des article et de faire vivre cette partie &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
Challenge réussi selon moi, la documentation s'est fort bien étoffée depuis lors, je tiens à en remercier chaleureusement tous les rédacteurs passés, présents et à venir pour leur bonne volonté à l'élaboration de cette base de connaissances. Et vous ? &lt;code&gt;&amp;lt;propagande&amp;gt;&lt;/code&gt;Est-ce que vous contribuez à la documentation ? Rejoignez-nous ; c'est gratuit ! &lt;img src=&quot;/themes/default/smilies/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;smiley&quot; /&gt; &lt;code&gt;&amp;lt;/propagande&amp;gt;&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Bon, là, du côté de l'engrenage, on doit en être à une bonne moitié de ma personne...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Un peu de documentation plus tard, une « Install Party » (désormais nommées « Rencontres Fedora ») a été organisée à Lille. On a sauté dans la voiture de Thomas, on est passés chez un ami prendre un PC sur lequel nous avions installé une jolie Fedora Core 6 toute neuve pour présenter les premières démonstrations de Compiz. Et voilà, &lt;a href=&quot;http://fedora.ulysses.fr/gallery/ip-lille-21-10-2006/&quot; hreflang=&quot;fr&quot;&gt;ma première IP à Lille&lt;/a&gt; ! &lt;em&gt;Aie, une jambe !&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Après Lille, &lt;a href=&quot;http://fedora.ulysses.fr/gallery/ip-paris-28-10-2006/&quot; hreflang=&quot;fr&quot;&gt;Paris&lt;/a&gt;, où j'ai eu l'occasion (peut-être devrais-je même dire l'insigne honneur) de rencontrer d'autres membres actifs de la communauté francophone de Fedora... Ce fut aussi l'occasion pour moi de présenter une conférence traitant du support de Fedora. Et pan. &lt;em&gt;L'autre jambe maintenant...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Début 2007, je me suis rendu au Fosdem à Bruxelles, j'ai eu l'occasion d'y faire un point avec &lt;a href=&quot;http://chitlesh.wordpress.com/&quot; hreflang=&quot;en&quot;&gt;Chitlesh&lt;/a&gt; sur mes débuts de packageur Fedora (merci à lui pour tout ce qu'il m'a appris !). J'ai également rencontré à cette occasion &lt;a href=&quot;http://blog.pingoured.fr/&quot; hreflang=&quot;fr&quot;&gt;Pingou&lt;/a&gt;, &lt;a href=&quot;http://eddy33.eddy33.free.fr/weblog/&quot; hreflang=&quot;fr&quot;&gt;Eddy33&lt;/a&gt;, et tant d'autres (que je salue au passage, je ne peux pas faire une liste de toutes les personnes que j'ai rencontrées).&lt;/p&gt;


&lt;p&gt;Courant 2007, lors d'une autre install party à paris, j'ai pu présenter une conférence sur le thème de la création de paquets RPM pour Fedora, à l'aide de &lt;a href=&quot;http://blog.famillecollet.com/&quot; hreflang=&quot;fr&quot;&gt;Remi&lt;/a&gt; et de &lt;a href=&quot;http://drpixel.tuxfamily.org/&quot; hreflang=&quot;fr&quot;&gt;drpixel&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;On peut considérer qu'à compter de ce moment, ma tête à fini par passer au travers de l'engrenage...&lt;/em&gt; « &lt;del&gt;The Matrix&lt;/del&gt;Fedora has you ! » Et ce sans avoir suivi aucun pingouin blanc, ni avalé de pilule bleue (humour glauque...).&lt;/p&gt;


&lt;p&gt;Depuis, je continue de m'occuper de &lt;a href=&quot;http://doc.fedora-fr.org&quot; hreflang=&quot;fr&quot;&gt;la documentation francophone de Fedora&lt;/a&gt; (j'ai récemment créé &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/15/05/2010/Documentation-francophone%2C-IRC-et-recherches&quot; hreflang=&quot;fr&quot;&gt;un bot qui permet d'interroger la documentation sur IRC&lt;/a&gt;, et une &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/26/05/2010/Recherche-dans-la-documentation-francophone-de-Fedora-%3A-le-round-PHP&quot; hreflang=&quot;fr&quot;&gt;page PHP qui permet des recherches plus précises que celles permises de base par MediaWiki&lt;/a&gt;), je suis &lt;a href=&quot;https://admin.fedoraproject.org/pkgdb/users/packages/trasher&quot; hreflang=&quot;en&quot;&gt;mainteneur ou co-mainteneur de plusieurs paquets dans les dépôts officiels&lt;/a&gt;, je prête à l'occasion &lt;a href=&quot;http://blog.famillecollet.com/pages/MerciThanks&quot; hreflang=&quot;fr&quot;&gt;main forte pour un peu de « développement » HTML/CSS&lt;/a&gt;. J'ai en revanche de longue date complètement abandonné la traduction, c'est un aspect des possibilités de contribution qui ne m'a pas séduit sur le long terme malheureusement.&lt;/p&gt;


&lt;p&gt;Entre temps, je me suis marié, j'ai eu une petite fille (qui a maintenant deux ans !) - tout ce petit monde étant bien entendu sous Fedora ; et j'essaie de continuer à contribuer à Fedora autant que faire se peut. Peut-être même vais-je essayer de m'atteler à quelque tâche inhabituelle sous peu, l'avenir le dira !&lt;/p&gt;


&lt;p&gt;PS : vous pouvez consulter l'&lt;a href=&quot;http://fedoraproject.org/wiki/Releases/HistoricalSchedules&quot; hreflang=&quot;en&quot;&gt;historique complet des sorties de Fedora&lt;/a&gt; ; et l'&lt;a href=&quot;http://doc.fedora-fr.org/wiki/Le_site_fedora-fr&quot; hreflang=&quot;fr&quot;&gt;historique complet de la vie de de fedora-france/fedora-fr&lt;/a&gt;&lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Recherche dans la documentation francophone de Fedora : la face PHP</title>
    <link>http://blog.ulysses.fr/index.php/post/26/05/2010/Recherche-dans-la-documentation-francophone-de-Fedora-%3A-le-round-PHP</link>
    <guid isPermaLink="false">urn:md5:88cb0fab8d9eb79604526397cc4c2049</guid>
    <pubDate>Wed, 26 May 2010 21:47:00 +0200</pubDate>
    <dc:creator>trashy</dc:creator>
        <category>PenguinLand</category>
            
    <description>    &lt;p&gt;Il y a quelques jours, je vous annonçais la création et la mise en ligne d'un &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/15/05/2010/Documentation-francophone%2C-IRC-et-recherches&quot;&gt;bot IRC qui permet d'effectuer des recherches dans la documentation francophone de Fedora&lt;/a&gt;.&lt;br /&gt;
Si votre mémoire est bonne (ou si vous avez suivi le lien de la ligne au dessus :-p) ; vous saurez que j'ai utilisé le &lt;a href=&quot;http://lucene.apache.org/solr/&quot; hreflang=&quot;en&quot;&gt;moteur de recherche Apache Solr&lt;/a&gt; pour arriver à mes fins.&lt;/p&gt;


&lt;p&gt;Quelque jours plus tôt encore, &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/27/04/2010/Extension-Solr-pour-PHP&quot; hreflang=&quot;en&quot;&gt;je parlais brièvement de l'API PHP pour Solr&lt;/a&gt;, ainsi que de la &lt;a href=&quot;http://blog.ulysses.fr/index.php/post/14/05/2010/L-API-PHP-pour-Solr-en-route-vers-les-d%C3%A9p%C3%B4ts...&quot; hreflang=&quot;en&quot;&gt;mise à disposition sur les dépôts Fedora (et EPEL !) de l'extension php-pecl-solr&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il fallait absolument faire quelque chose de tout cela ! Bon... OK... mon côté petit développeur du dimanche à pris le dessus, d'accord... &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;J'ai donc utilisé l'API PHP/Solr et utilisé l'indexation que j'avais préalablement effectuée pour MrBot afin de produire une interface de recherche un brin plus évoluée que le simple résultat renvoyé sur IRC.&lt;br /&gt;
Voici le résultat : &lt;a href=&quot;http://fedoradoc.ulysses.fr&quot; hreflang=&quot;fr&quot;&gt;http://fedoradoc.ulysses.fr&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Cette interface apporte, entre autres, les fonctionnalités suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la recherche de termes dans les titres et/ou le texte des &lt;a href=&quot;http://doc.fedora-fr.org&quot; hreflang=&quot;fr&quot;&gt;articles du wiki&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;un « suggest »&lt;/li&gt;
&lt;li&gt;la possibilité de filtrer sur une ou plusieurs catégories,&lt;/li&gt;
&lt;li&gt;le sur-lignage des termes recherchés dans les résultats,&lt;/li&gt;
&lt;li&gt;la présentation d'un extrait de texte qui permet de contextualiser le résultat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L'intégration de cette « interface » sur le site fedora-fr.org n'est pas à l'ordre du jour pour différentes raisons :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le serveur actuellement en place ne possède pas assez de mémoire vive pour faire tourner les services actuels plus l'index Solr,&lt;/li&gt;
&lt;li&gt;je n'ai pas envie de « perdre mon temps » à intégrer ça dans MediaWiki (ça ne m'intéresse vraiment pas d'apprendre à utiliser leur API),&lt;/li&gt;
&lt;li&gt;il faut laisser leur chance à d'autres de contribuer,&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En revanche, j'ai un peu pêché sur le nom de l'application ; j'étais en panne d'inspiration :'( Ça donne donc &lt;code&gt;php-docfr-solrsearch&lt;/code&gt;, mais au diable le nom, cela importe bien moins que les fonctionnalités (illustration parfaite de l'expression « se raccrocher aux branches » diront les esprits chagrins) &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Bien évidemment, tout le code source est sous licence libre (GPLv3 en l'occurrence), et disponible sur &lt;a href=&quot;http://hg.ulysses.fr&quot; hreflang=&quot;fr&quot;&gt;mon dépôt mercurial&lt;/a&gt;. Voici quelques liens « agréables », sinon « utiles » :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://hg.ulysses.fr/php-docfr-solrsearch/&quot; hreflang=&quot;en&quot;&gt;les sources de php-docfr-solrsearch&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://redmine.ulysses.fr/projects/php-solr-docfr&quot; hreflang=&quot;fr&quot;&gt;les bogues, fonctionnalités prévues, etc.. de php-docfr-solrsearch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bien entendu, les retours, les commentaires constructifs, les patches (on peut toujours rêver), les intégrations à MediaWiki (ben oui, on peut rêver, non ?) sont les bienvenus !&lt;/p&gt;


&lt;p&gt;Je suis bien conscient que le fonctionnement actuel n'est pas parfait et que des incohérences et bogues peuvent survenir. Tout ça sera fort certainement corrigé au fur et à mesure.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>