<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://planet-fr.debian.net/">
	<title>Planet Debian-FR</title>
	<link>http://planet-fr.debian.net/</link>
	<description>Planet Debian-FR - http://planet-fr.debian.net/</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="urn:md5:25a3f27345e783851b50343207d052ba" />
			<rdf:li rdf:resource="http://gcolpart.evolix.net/blog21/?p=50" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/04/17/freelance-howto-2.html" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/04/11/mise-en-place-d-un-tunnel-6to4.html" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/04/11/trente-et-un.html" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/04/des-nouvelles-de-la-fibre-optique.html" />
			<rdf:li rdf:resource="urn:md5:a351931c943eb7bfc811e357a691174b" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/03/22/freelance-howto-1.html" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/03/22/un-dollar.html" />
			<rdf:li rdf:resource="http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-2/" />
			<rdf:li rdf:resource="urn:md5:b7adfc4173de7dd221bdbec930ddab5b" />
			<rdf:li rdf:resource="urn:md5:7949b0c01c79f1c26be9fe22f7cd01c7" />
			<rdf:li rdf:resource="urn:md5:71e3749e112ea1489539565692949f0a" />
			<rdf:li rdf:resource="urn:md5:bc4489bf4b787147a7cec60f78ad1f7d" />
			<rdf:li rdf:resource="urn:md5:ee44a667d44d1f6e7c101b06d5a96188" />
			<rdf:li rdf:resource="urn:md5:a30446756f8bc529a42bc98544a5b1aa" />
			<rdf:li rdf:resource="urn:md5:cbba3cfc66a073a2457f87efb0600f17" />
			<rdf:li rdf:resource="urn:md5:2169f579ed4782fcb327062de6df65f1" />
			<rdf:li rdf:resource="urn:md5:10291220976aba30ff21d78ba46ea9ea" />
			<rdf:li rdf:resource="urn:md5:da25d10fa93ae38dc845e3c4ff791f7d" />
			<rdf:li rdf:resource="urn:md5:5c9fe10e13109ce589202c30a5eff269" />
			<rdf:li rdf:resource="http://gcolpart.evolix.net/blog21/variables-denvironnement-et-services/" />
			<rdf:li rdf:resource="http://www.sukria.net/fr/archives/2008/02/24/raid5-cest-bon/" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/01/24/gforge-janvier-2008.html" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html" />
			<rdf:li rdf:resource="http://www.ouaza.com/wp/2008/01/20/jeu-concours-cloture/" />
			<rdf:li rdf:resource="http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-1/" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2007/12/23/ipv6-pourquoi.html" />
			<rdf:li rdf:resource="http://www.ouaza.com/wp/2007/12/12/qui-veut-gagner-un-cahier-de-ladmin-debian/" />
			<rdf:li rdf:resource="http://roland.entierement.nu/blog/2007/11/30/pirates-geeks.html" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="urn:md5:25a3f27345e783851b50343207d052ba">
	<title>Jean-Christophe Dubacq: Déclaration d'impôts sous Debian : échec complet</title>
	<link>http://jean-christophe.dubacq.fr/post/Declaration-dimpots-sous-Debian-%3A-echec-complet</link>
	<content:encoded>&lt;p&gt;Comme chaque année, il faut déclarer ses impôts sur le revenu. Les années précédentes, j'avais réussi à le faire sans trop de problèmes. Cette année, ma machine étant passée en &lt;tt&gt;amd64&lt;/tt&gt;, je soupçonnais des problèmes et j'avais raison : en une heure, je n'ai pas réussi à faire ma déclaration d'impôts, et j'ai mis moins de trois minutes sous MacOS X.&lt;/p&gt;    &lt;p&gt;Je partais quand même avec une longueur d'avance&amp;nbsp;: j'avais déjà un certificat valable jusqu'en 2010, qui a été reconnu d'office. J'ai ainsi pu remplir ma déclaration d'impôt (format PKCS 12, que j'ai pu exporter et mettre sur mon Mac pour finir la déclaration). Mais au moment de signer la déclaration, il faut exécuter une applet java, qui permettait la signature proprement-dite (au sens cryptographique du terme). Et là, plus possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sun n'a pas publié de plugin compatible &lt;tt&gt;amd64&lt;/tt&gt; et ne prévoit pas de le faire avant début 2009...&lt;/li&gt;
&lt;li&gt;openjdk-6 n'est pas fabriqué pour Debian&lt;/li&gt;
&lt;li&gt;Le plugin d'IcedTea ne fonctionne pas pour les impôts (fenêtre grise vide).&lt;/li&gt;
&lt;li&gt;Blackdown Java est introuvable... et avant ça, j'en avais une vieille copie qui fonctionnait à certains endroits mais faisait des segfaults systématiques sur cette applet-là.&lt;/li&gt;
&lt;li&gt;Monter un chroot pour iceweasel n'a pas l'air de fonctionner dans le temps imparti (même avec un &lt;tt&gt;xhost +&lt;/tt&gt; il n'arrive pas à ouvrir de fenêtres graphiques)...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enfin bref, conclusion&amp;nbsp;: j'ai fait sur un Mac, et ces conneries m'emmerdent.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-02T10:45:04+00:00</dc:date>
</item>
<item rdf:about="http://gcolpart.evolix.net/blog21/?p=50">
	<title>Gr&amp;#233;gory Colpart: Autre exemple de migration Debian Sarge-&gt;Etch [3]</title>
	<link>http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-debian-sarge-etch-3/</link>
	<content:encoded>&lt;p&gt;Un nouvel exemple de migration (après &lt;a href=&quot;http://gcolpart.evolix.net/blog21/un-exemple-de-migration-debian-sarge-etch-0/&quot;&gt;[0]&lt;/a&gt;,&lt;a href=&quot;http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-1/&quot;&gt;[1]&lt;/a&gt; et &lt;a href=&quot;http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-2/&quot;&gt;[2]&lt;/a&gt;) qui concerne cette fois un serveur de messagerie (Postfix/Courier-IMAP/OpenLDAP/Amavis/SpamAssassin/Horde) et d&amp;#8217;un intranet (Apache/PHP/MySQL) pour plusieurs centaines d&amp;#8217;utilisateurs. La migration a duré environ 3 heures (pizzas comprises) sans accroc majeur mais avec un bon nombre de remarques plus ou moins importantes :&lt;/p&gt;
&lt;p&gt;- Les &lt;em&gt;Release Notes&lt;/em&gt; dispensent de bons conseils : &lt;em&gt;Backup any data&lt;/em&gt;, &lt;em&gt;inform users in advance&lt;/em&gt;, etc. J&amp;#8217;ajoute que je préconise de prévoir une période &lt;strong&gt;d&amp;#8217;arrêt&lt;/strong&gt; des services d&amp;#8217;au moins une heure avec quelques heures de marge au cas où (dans pas mal de cas, cela peut correspondre à prévoir cela un soir et se réserver la possibilité de passer la nuit dessus !). Je dis bien que je conseille d&amp;#8217;arrêter les services (par exemple, mettre en place des règles de firewall les rendant inaccessibles) : en effet prenons l&amp;#8217;exemple d&amp;#8217;un service SMTP, il est nécessaire de bien vérifier que le système mis-à-jour est fonctionnel avant d&amp;#8217;autoriser à nouveau les mails entrants (car si un problème survient, on risque de perdre des mails). Bien sûr, si aucun arrêt n&amp;#8217;est possible, une infrastructure permettant une tolérance de panne est sûrement place et l&amp;#8217;arrêt des services sur une machine ne posera pas de problème.&lt;/p&gt;
&lt;p&gt;- J&amp;#8217;utilise en général un noyau Linux patché grsec sur les serveurs mail ou web. Et avant une mise-à-jour majeure, j&amp;#8217;ai pris l&amp;#8217;habitude redémarrer sur un noyau non-grsec, à savoir celui par défaut&amp;#8230; sauf quand il ne contenait pas les pilotes du controleur RAID/SCSI. À retenir :-)&lt;br /&gt;
Toujours au sujet du noyau, après quelques installations/désinstallations de noyaux, le paquet &lt;em&gt;module-init-tools&lt;/em&gt; a disparu, d&amp;#8217;où d&amp;#8217;inquiétants messages &lt;em&gt;QM_MODULES: Function not implemented&lt;/em&gt;. Solution triviale : &lt;em&gt;aptitude install module-init-tools&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;- J&amp;#8217;ai perdu mon périphérique &lt;em&gt;/dev/megadev0&lt;/em&gt; (correspondant au controleur RAID/SCSI) que j&amp;#8217;ai du recréé via &lt;em&gt;mknod /dev/megadev0 c 253 0 &lt;/em&gt; pour avoir un monitoring fonctionnel.&lt;/p&gt;
&lt;p&gt;- Un problème de conflit entre les paquets &lt;em&gt;libfam0&lt;/em&gt; et &lt;em&gt;libfam0c102&lt;/em&gt; s&amp;#8217;est posé, empêchant d&amp;#8217;ailleurs de préparer la mise-à-jour avec un &lt;em&gt;aptitude -d dist-upgrade&lt;/em&gt; pour télécharger d&amp;#8217;avance tous les paquets à mettre à jour (j&amp;#8217;ai finalement du le faire en précisant les paquets manuellement). Pour forcer la résolution de ce conflit : &lt;em&gt;aptitude install libfam0&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;- J&amp;#8217;ai obtenu l&amp;#8217;erreur suivante pendant la mise-à-jour : &lt;em&gt;E: Internal Error, Could not perform immediate configuration (2) on debian-archive-keyring Ack!  Something bad happened while installing packages&lt;/em&gt;. Pour la résoudre : &lt;em&gt;aptitude install debian-archive-keyring&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;- Parlons Apache/PHP/MySQL. En ce qui concerne la migration d&amp;#8217;Apache, aucun problème. Pour MySQL 4 vers 5, rien à noter non plus mis à part de bien conserver les mots de passe compatibles avec la v4 (&lt;em&gt;old_passwords=1&lt;/em&gt;) comme nous le propose debconf. Enfin pour PHP, je suis resté (pour le moment) sur la version 4 car l&amp;#8217;Intranet tourne sous &lt;a href=&quot;http://typo3.org/&quot;&gt;Typo3&lt;/a&gt; et le module calendrier en place semble être incompatible avec PHP5. J&amp;#8217;ai eu par contre une activation &amp;#8220;surprise&amp;#8221; du module eaccelerator dans le php.ini :&lt;em&gt; PHP Warning:  Unknown(): Unable to load dynamic library &amp;#8216;/usr/lib/php4/20050606+lfs/eaccelerator.so&amp;#8217; - /usr/lib/php4/20050606+lfs/eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0&lt;/em&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- Pour SpamAssassin, mettre à jour les &lt;em&gt;require_version&lt;/em&gt; des règles sur mesure ! Et quelques adaptations mineures (&lt;em&gt;ok_languages&lt;/em&gt;, &lt;em&gt;use_dcc&lt;/em&gt; plus valables).&lt;/p&gt;
&lt;p&gt;- Quelques petits coups de pioche à mettre :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;freshclam: error while loading shared libraries: libgmp.so.3: cannot enable executable stack as shared object requires: Permission denied&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Solution : &lt;em&gt;execstack -c /usr/lib/libgmp.so.3.3.3&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Uncaught exception from user code: Can&amp;#8217;t load &amp;#8216;/usr/lib/perl5/auto/Quota/Quota.so&amp;#8217; for module Quota: /usr/lib/perl5/auto/Quota/Quota.so: cannot enable executable stack as shared object requires: Permission denied at /usr/lib/perl/5.8/DynaLoader.pm line 225, &amp;lt;DATA&amp;gt; line 225. at ./add.pl line 26&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Solution : &lt;em&gt;execstack -c /usr/lib/perl5/auto/Quota/Quota.so&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- Pour garder Vim en tant qu&amp;#8217;éditeur par défaut (aucun troll n&amp;#8217;est caché dans ce point&amp;#8230;), ne pas oublier le fameux &lt;em&gt;update-alternatives &amp;#8211;config editor&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- Pour Courier-LDAP, la syntaxe a apparemment changé :&lt;em&gt;&lt;br /&gt;
authdaemond: You need to specify a ldap server in config file&lt;br /&gt;
authdaemond: authldaplib: error in LDAP configuration file, aborting&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il faut désormais préciser LDAP_URI (LDAP_SERVER et LDAP_PORT ne sont plus valables) :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;#LDAP_SERVER        127.0.0.1&lt;br /&gt;
#LDAP_PORT      389&lt;/em&gt;&lt;em&gt; LDAP_URI                ldap://127.0.0.1&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- Postfix 2.3 génère maintenant par défaut des DSN (Delivery Status Notifications) qui peuvent s&amp;#8217;avérer gênantes avec les demandes de confirmation de lecture d&amp;#8217;Outlook. Pour désactiver les DSN, ajouter dans le main.cf : &lt;em&gt;smtpd_discard_ehlo_keywords = silent-discard, dsn&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Voilà, ce fut donc loin de passer comme une lettre à la poste, mais ça ne fut pas un calvaire non plus. Les services ont été réactivés en temps et en heure, et aucun soucis majeur ne s&amp;#8217;est produit dans les jours suivants. Au serveur suivant !&lt;/p&gt;</content:encoded>
	<dc:date>2008-04-20T01:31:37+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/04/17/freelance-howto-2.html">
	<title>Roland Mas: Freelance HOWTO, deuxième</title>
	<link>http://roland.entierement.nu/blog/2008/04/17/freelance-howto-2.html</link>
	<content:encoded>&lt;p&gt;Deuxième partie de ce « HOWTO se mettre à son compte ».  Voyons
aujourd'hui les différentes charges financières à prévoir.  Elles se
divisent en deux principales catégories : les charges fiscales (taxes
et impôts), et les charges sociales (cotisations).  Leur mode de
calcul et de perception est loin d'être unifié, donc accrochez-vous.&lt;/p&gt;

&lt;h3&gt;Imposition des bénéfices&lt;/h3&gt;

&lt;p&gt;Les bénéfices réalisés (on l'espère) par l'entreprise sont soumis à un
impôt.  Le calcul du montant de cet impôt nécessite la connaissance
des bénéfices à imposer, et les bénéfices de l'année N sont donc
imposés en N+1 comme pour l'impôt sur le revenu.  Dans certains cas,
d'ailleurs, cette imposition &lt;em&gt;est&lt;/em&gt; celle de l'impôt sur le revenu.
Dans d'autres cas, il s'agit de l'impôt sur les sociétés.&lt;/p&gt;

&lt;h4&gt;En impôt sur le revenu&lt;/h4&gt;

&lt;p&gt;Dans le cas d'une entreprise individuelle, comme il n'y a pas de
séparation entre l'entreprise et l'entrepreneur, les bénéfices sont
imposés dans le cadre de l'impôt sur le revenu, avec une déclaration
supplémentaire.  Selon le montant du chiffre d'affaires, deux types de
déclarations sont possibles.  Le régime « micro » est le plus simple,
et considère que les frais professionnels représentent une fraction
forfaitaire (37 %) des recettes.  L'entrepreneur est alors imposé
comme s'il percevait la fraction restante en tant que salaire.  La
comptabilité est très simplifiée, et se résume quasiment à une
simple addition annuelle des montants des factures réglées.&lt;/p&gt;

&lt;p&gt;Le régime « réel » impose une comptabilité plus complexe.  En
contrepartie, l'entreprise est imposée sur ses bénéfices réels, et non
sur une fraction constante de ses recettes.  Si les frais
professionnels (déplacements, sous-traitance, services externes) sont
élevés et qu'ils dépassent les 37% forfaitaires, il est donc
intéressant d'utiliser ce régime réel.&lt;/p&gt;

&lt;p&gt;Note en passant : le choix du régime « micro » n'est possible que dans
le cas d'une entreprise individuelle ne dépassant pas 27000€ de
recettes par an.  Au-delà, le régime « réel » est obligatoire.&lt;/p&gt;

&lt;p&gt;D'une manière ou d'une autre, le résultat de l'entreprise est intégré
dans le revenu de l'entrepreneur, donc soumis au barême habituel de
l'impôt sur le revenu (quotient familial, tranches d'imposition,
demi-parts supplémentaires, etc.).&lt;/p&gt;

&lt;h4&gt;En impôt sur les sociétés&lt;/h4&gt;

&lt;p&gt;Dans le cas d'une SARL, le régime fiscal est celui de l'impôt sur les
sociétés.  La société est imposée sur ses bénéfices, c'est-à-dire sur
la différence entre ses recettes et ses frais.  Parmi les frais, les
rémunérations des employés et du gérant ne seront donc pas imposés
pour la société ; mais ils entreront bien sûr dans les revenus des
personnes concernées, et seront donc imposés au titre de l'impôt sur
leur revenu.&lt;/p&gt;

&lt;p&gt;Une EURL est généralement imposée au titre de l'impôt sur le revenu,
mais son gérant peut décider de la faire migrer vers le statut fiscal
de l'impôt sur les sociétés.  Attention, cette migration est
définitive.&lt;/p&gt;

&lt;p&gt;L'impôt sur les sociétés se base sur les bénéfices réalisés, et
fonctionne selon deux taux.  Le taux normal, de l'ordre de 30 %,
s'applique dans le cas général ; le taux réduit, de l'ordre de 15 %,
est soumis à conditions (bénéfices en-deçà d'un plafond de quelque
7 millions d'euros, confortable pour un freelance) et ne s'applique
qu'aux 38120 premiers euros, le reste étant imposé au taux normal.&lt;/p&gt;

&lt;h3&gt;TVA&lt;/h3&gt;

&lt;p&gt;La TVA est un impôt indirect, qui est collecté par le vendeur lors de
toute vente de biens ou de services, et reversé à l'État.  Comme elle
ne porte que sur la valeur ajoutée, la TVA reversée est seulement la
différence entre le montant de TVA reçue par une entreprise de ses
clients et le montant de TVA payée par cette entreprise à ses
fournisseurs.&lt;/p&gt;

&lt;p&gt;Les entreprises dont le chiffre d'affaires est inférieur à un certain
seuil (27000€ pour les prestations de services, 76300€ pour les ventes
de marchandises) peuvent bénéficier du dispositif de franchise de
TVA.  Ces entreprises peuvent alors se passer de faire figurer la TVA
sur leurs factures (ce qui peut être intéressant si les clients ne
sont pas des entreprises habilitées à récupérer la TVA, par exemple
s'il s'agit de particuliers ou d'associations).&lt;/p&gt;

&lt;p&gt;La TVA à reverser se calcule simplement : elle est constituée de la
différence entre la TVA collectée auprès des clients et celle payée
aux fournisseurs.  Ce calcul peut se faire tous les ans, tous les
trimestres ou tous les mois, et le versement correspondant a lieu
rapidement.&lt;/p&gt;

&lt;p&gt;Il y a quelques subtilités à connaître pour les clients étrangers (et
même, ça dépend s'ils font partie de l'Union européenne ou pas), mais
ça ne va pas chercher bien loin.&lt;/p&gt;

&lt;h3&gt;Taxe professionnelle&lt;/h3&gt;

&lt;p&gt;Cette taxe est encore d'une simplicité formidable : elle est collectée
localement (par le département si mes souvenirs sont bons), mais son
calcul est déterminé par l'addition de trois parts, perçues par la
commune, le département et l'État, avec donc trois taux différents
déterminés par trois collectivités différentes.  Ça prend en compte
les bénéfices réalisés, mais aussi la valeur locative des outils de
travail et des tas de trucs bizarres.  Et il y a des planchers
incompressibles, ce qui peut surprendre la première année si l'on n'a
eu que de faibles revenus et qu'on se retrouve avec une grosse
proportion de ces revenus à reverser.&lt;/p&gt;

&lt;h3&gt;Cotisations sociales&lt;/h3&gt;

&lt;p&gt;Ce terme assez large regroupe les cotisations versées à différentes
caisses qui reversent les prestations sociales.  On y trouve
notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;les cotisations d'allocations familiales, versées à l'URSSAF ;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;les cotisations d'assurance maladie, versées à une caisse
d'assurance maladie (RAM par exemple) et éventuellement à une
mutuelle ;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;les cotisations d'assurance vieillesse (retraite), versées à une
autre caisse (CIPAV ou autre, ça dépend des professions) ; il est
ici aussi possible de prendre une assurance complémentaire, mais
c'est le même organisme qui la collecte.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y figurent aussi les cotisations dites de « prévoyance », c'est-à-dire
d'assurance invalidité-décès, ainsi que des trucs que j'ai pas encore
trop compris (CSG, CRDS et tout le tintouin).&lt;/p&gt;

&lt;p&gt;Ces cotisations ne sont pas calculées sur l'activité de l'année
précédente, mais sur celle d'avant.  Ainsi, un entrepreneur qui débute
son activité en 2008 paiera des cotisations &lt;em&gt;forfaitaires&lt;/em&gt; en 2008 et
2009, et ce n'est qu'en 2010 que sera régularisé l'éventuel trop-perçu
de 2008.  Pour les années suivantes, le forfaitaire pur est remplacé
par une estimation des bénéfices, mais il reste le principe de la
régularisation en N+2.&lt;/p&gt;

&lt;h3&gt;Combien ?&lt;/h3&gt;

&lt;p&gt;La question que tout le monde se pose : combien ça coûte, et combien
il reste à la fin ?  Évidemment, et malheureusement, la réponse n'est
pas simple.  Déjà parce que le mode de calcul diffère selon les
charges (forfaitaire, régularisé, année N-1 ou N-2, voire trimestre ou
mois), mais aussi parce que d'une année sur l'autre, l'entreprise qui
grossit un peu franchit les plafonds et change donc de statut donc de
mode de calcul.  Et les taux retenus par les caisses changent, et si
on a un travail salarié à côté la tranche d'imposition ne dépend pas
uniquement des revenus de l'entreprise, etc.  Mon impression (et après
4 ans d'entreprise je n'ai toujours pas atteint un régime de croisière
stable, donc c'est à prendre avec des pincettes) est qu'en gros, pour
100 € facturés, il en reste entre 40 et 50 après cotisations,
contributions, taxes et impôts.  J'insiste cependant sur le fait que
ça s'applique à mon cas particulier, et que ce chiffre varie
probablement d'une entreprise à l'autre, suivant l'activité et le mode
de fonctionnement (donc l'ampleur des frais et des fournisseurs).&lt;/p&gt;

&lt;p&gt;Notons en passant qu'il existe des mécanismes d'exonération de charges
pour les entreprises répondant à certaines conditions (jeune
entreprise innovante, création d'emploi, zone franche ou défavorisée,
etc.).  Ça peut permettre de commencer son activité avec une certaine
sérénité financière, à condition de planifier pour ne pas se retrouver
le bec dans l'eau lorsque ces exonérations sont levées...&lt;/p&gt;

&lt;p&gt;Ainsi finit cette deuxième partie.  C'est pas très précis, mais c'est
parce que c'est vraiment compliqué pour calculer tout ça
(heureusement, c'est en général pris en charge par les différentes
caisses).  La troisième (et probablement dernière) partie redeviendra
un peu plus terre-à-terre, et traitera des formalités concrètes de
création ainsi que du fonctionnement quotidien de l'entreprise.&lt;/p&gt;</content:encoded>
	<dc:date>2008-04-17T14:48:14+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/04/11/mise-en-place-d-un-tunnel-6to4.html">
	<title>Roland Mas: Mise en place d'un tunnel 6to4</title>
	<link>http://roland.entierement.nu/blog/2008/04/11/mise-en-place-d-un-tunnel-6to4.html</link>
	<content:encoded>&lt;p&gt;Autant pour ne pas oublier que pour en faire profiter les amis, voici
une méthode rapide pour mettre en place l'IPv6 par la méthode de
transition &lt;em&gt;6to4&lt;/em&gt; sur une machine Linux.&lt;/p&gt;

&lt;p&gt;Pré-requis : un ordinateur sous un noyau Linux un peu récent (pas
d'inquiétude, ça marche même avec une Debian stable, que les mauvaises
langues se plaisent pourtant à qualifier d'obsolète dès sa sortie).
Avec une adresse IPv4 publique fixe.&lt;/p&gt;

&lt;p&gt;Première étape : ajouter ce qui va bien dans le fichier
&lt;code&gt;/etc/network/interfaces&lt;/code&gt;.  Pour pas s'embêter, on prend le script
suivant qu'on appelle avec &lt;code&gt;./6to4.sh &amp;lt;adressev4&amp;gt;&lt;/code&gt;, et on copicolle le
résultat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;#! /bin/sh
set -e

ip4=&amp;#036;1
echo &quot;&amp;#036;ip4&quot; | grep -q '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*&amp;#036;' || \
{ echo 'Syntax: &amp;#036;0 a.b.c.d'; exit 1; }

ip6=&amp;#036;(printf '2002:%02x%02x:%02x%02x::1' &amp;#036;(echo &amp;#036;ip4 | sed 's/\./ /g'))

sed s/IP6/&amp;#036;ip6/ &amp;lt;&amp;lt; EOF
auto sit0
iface sit0 inet6 static
        address IP6
        netmask 64
        gateway ::192.88.99.1
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Deuxième étape : activer cette interface, avec &lt;code&gt;ifup sit0&lt;/code&gt;.  Pouf, on
a de l'IPv6.&lt;/p&gt;

&lt;p&gt;Troisième étape, optionnelle : configurer un firewall pour cette
interface (attention, c'est avec &lt;code&gt;ip6tables&lt;/code&gt; et plus avec &lt;code&gt;iptables&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Quatrième étape, optionnelle aussi : configurer une zone DNS &lt;em&gt;reverse&lt;/em&gt;
sur un serveur, et faire référencer ce serveur.  Ça se passe sur
&lt;a href=&quot;http://6to4.nro.net/&quot;&gt;6to4.nro.net&lt;/a&gt;, et il suffit de remplir les
champs du formulaire en faisant la requête &lt;em&gt;depuis la machine
concernée&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;...et voilà.  Évidemment ce mini-HOWTO devrait n'être utile que
pendant une période limitée (juste le temps que tous les FAI
fournissent de l'IPv6 natif), évidemment il ne couvre pas le routage
automatique pour le réseau situé derrière la machine, il ne couvre pas
les configurations compliquées, mais au moins, pour le prochain
serveur dédié que le prendrai, j'aurai la manipulation prête et
documentée.&lt;/p&gt;</content:encoded>
	<dc:date>2008-04-11T14:20:15+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/04/11/trente-et-un.html">
	<title>Roland Mas: Trente-et-un</title>
	<link>http://roland.entierement.nu/blog/2008/04/11/trente-et-un.html</link>
	<content:encoded>&lt;p&gt;C'est aujourd'hui.  Et, comme d'habitude, ça ne change pas
grand-chose.&lt;/p&gt;</content:encoded>
	<dc:date>2008-04-11T07:07:39+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/04/des-nouvelles-de-la-fibre-optique.html">
	<title>Roland Mas: Des nouvelles de la fibre optique</title>
	<link>http://roland.entierement.nu/blog/2008/04/des-nouvelles-de-la-fibre-optique.html</link>
	<content:encoded>&lt;p&gt;On entend parfois parler dans les magazines d'information de l'arrivée
imminente des connexions Internet par fibre optique, utilisant
différentes techniques regroupées sous le nom de &quot;FTTH&quot; (&lt;em&gt;fiber to the
home&lt;/em&gt;, la fibre jusqu'à la maison).  Enfin, imminente... apparemment
les syndics de certains immeubles commenceraient à être contactés par
les opérateurs.  Mais ça reste assez limité, et réservé à quelques
privilégiés.  Pour les autres, ceux qui habitent dans les petites
villes (moins de dix millions d'habitants), ça reste assez flou et on
sait ni trop comment ça marche, ni quand ça sera réellement
disponible.&lt;/p&gt;

&lt;p&gt;C'est donc avec une certaine excitation que j'ai participé à une
expérimentation pilote pour le déploiement de FTTH (dans sa variante
FTTH-PY, pour ceux qui connaissent).  Je n'ai pas pu tester en
profondeur, faute de préparation préalable (mea culpa), je ne peux
donc vous livrer que mes premières impressions.&lt;/p&gt;

&lt;p&gt;D'abord, la disponibilité du matériel : impression très favorable de
ce côté-là, on peut trouver les équipements d'émission/réception en
grande surface sans problème (testé dans une seule grande surface,
mais je ne pense pas que le Carrefour de chez moi soit plus spécialisé
qu'un autre).  Pour la fibre elle-même, c'est à peine plus compliqué,
mais elle est elle aussi largement disponible dans les magasins
spécialisés.  Le prix est également très raisonnable, et le système
est probablement parmi les moins chers du marché (il entre en
concurrence directe avec les réseaux &lt;em&gt;floppynet&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Pour la mise en place, c'est pas encore tout-à-fait &lt;em&gt;plug and play&lt;/em&gt;,
hélas.  Les contraintes de courbure de la fibre imposées par le
système de modulation font que la longueur de la fibre doit être
calculée au millimètre près, et ne peut donc pas être connue à
l'avance.  Il faut donc prendre les mesures soi-même et couper la
bonne longueur de fibre.  De même, les terminaux étant génériques, ils
peuvent s'adapter à plusieurs dimensions de fibre, et il faut les
préparer à recevoir la bonne.  Il faut également effectuer le
raccordement proprement dit.  Ça reste très accessible (pas besoin de
pince à sertir ou d'outillage particulier), et le tout peut être réglé
en quelques minutes, mais on espère que la standardisation aidant ça
pourra être simplifié pour les versions finales.&lt;/p&gt;

&lt;p&gt;Arrive le gros point noir : le FTTH-PY est censé, à terme, permettre
de faire transiter plusieurs types de communications, que ce soit de
la voix ou de la donnée, mais pour l'instant seule la voix est
réellement opérationnelle.  Il n'y a malheureusement pas encore de
pilotes disponibles (ni sous Linux, ni &lt;em&gt;a fortiori&lt;/em&gt; sous Windows ou
Mac OS), et il faut donc passer par des systèmes de conversion des
flux de données en signal sonore plus ou moins audible.  L'avantage
est que ce système de modulation-démodulation (oui oui, c'est un
modem) peut être réalisé intégralement en logiciel, l'inconvénient est
que les logiciels existants ne sont pas encore à un niveau de
stabilité suffisant pour une utilisation réelle.  Et même s'ils
finissent par y arriver, les prévisions sont pessimistes quant aux
performances.  Je n'ai donc pas réussi à établir de connexion de
données sur ma fibre, j'en suis très déçu.  Je ne peux donc que vous
transmettre les informations que l'on m'a données, à savoir que les
performances attendues pour ce qui concerne les transmissions de
données sont de l'ordre de celles obtenues en RFC1149 (IPoAC) pour ce
qui concerne le débit et les taux d'erreur, mais sans les problèmes de
latence variable.  C'est prometteur, mais encore une fois, j'ai pas
testé donc je peux pas confirmer.&lt;/p&gt;

&lt;p&gt;J'ai donc principalement testé la voix, avec des résultats &lt;em&gt;plutôt&lt;/em&gt;
positifs.  C'est un peu nasillard, mais on peut aisément reconnaître
la voix de son interlocuteur.  Et je n'ai à aucun moment rencontré les
problèmes classiques des nouvelles solutions de téléphonie, notamment
VOIP : pas d'écho, absolument aucun effet Larsen, pas de
micro-coupure...  Également, pour autant que ce soit réellement
mesurable à l'oreille (je ne dispose pas de bancs de tests sérieux
pour ce genre de mesures), il &lt;em&gt;semble&lt;/em&gt; que le temps de propagation
soit raisonnablement rapide, ce qui est particulièrement appréciable
pour les conversations.  En revanche, le signal semble perdre en
puissance avec la distance.  La longueur d'un brin de fibre sera donc
calculée en conséquence.  Pour les communications plus longues, il
faudra mettre en place des répéteurs, mais la qualité du signal s'en
ressent, la voix des interlocuteurs étant pas mal altérée voire
rendue méconnaissable selon les répéteurs.&lt;/p&gt;

&lt;p&gt;Je n'ai hélas pas pu pousser mes tests au-delà, et je ne peux donc
vous donner que cet aperçu très partiel.&lt;/p&gt;

&lt;p&gt;Mon verdict : de ce que j'ai pu en voir, le FTTH-PY me semble avoir
encore du chemin à faire.  Les applications de voix sont actuellement
bien traitées, mais la transmission de données n'en est encore qu'à
ses balbutiements, et je crains que les concurrents dans la course
pour le marché FTTH n'aient déjà pris une avance trop importante.
Ceci dit, il peut probablement subsister sur des marchés de niche, en
raison de son très faible coût de mise en place et de maintenance.  À
titre d'exemple, un réseau point-à-point de deux postes peut être
entièrement constitué pour le prix de deux pots de yaourt et de dix
mètres de fil de pêche.&lt;/p&gt;

&lt;p&gt;Pour terminer, je voudrais remercier Philippe, qui travaille chez
l'opérateur télécom, pour m'avoir proposé de (et encouragé à)
participer à cette expérimentation, et sans qui ce billet n'aurait pas
été écrit.&lt;/p&gt;</content:encoded>
	<dc:date>2008-04-01T06:47:39+00:00</dc:date>
</item>
<item rdf:about="urn:md5:a351931c943eb7bfc811e357a691174b">
	<title>Jean-Christophe Dubacq: Installation d'un webmail Roundcube en moins de 30 minutes</title>
	<link>http://jean-christophe.dubacq.fr/post/Installation-dun-webmail-Roundcube-en-moins-de-30-minutes</link>
	<content:encoded>&lt;p&gt;Depuis la réinstallation de ma machine (depuis zéro), je n'avais pas remis en place de webmail. Avant, j'utilisais horde, bien connu des premiers utilisateurs de Free par exemple. C'est sûrement très puissant, mais j'utilise le webmail de façon extrêmement ponctuelle, quand je suis en déplacement dans un endroit qui ne laisse pas passer les connexions &lt;code&gt;ssh&lt;/code&gt;. Il est aussi assez complexe à installer.&lt;/p&gt;
&lt;p&gt;Mercredi, il y a deux semaines, je me suis retrouvé dans un tel endroit. Si j'ai un webmail fourni par mon travail, là, je voulais consulter une boîte à lettres spécifique de mon serveur&amp;nbsp;; ça n'allait plus du tout. J'ai rongé mon frein toute la journée, puis je suis revenu sur le problème ce matin. J'ai réussi à tout faire en moins de 30 minutes, tout compris, et sans avoir d'idée au préalable de ce qu'il fallait faire (je n'avais jamais lu la documentation du logiciel, à peine regardé les captures d'écran sur le site en question). &lt;a href=&quot;http://roundcube.net/&quot; hreflang=&quot;en&quot;&gt;Félicitations à Roundcube&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;    &lt;p&gt;Au menu&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La veille, préparer un petit nom de domaine spécifique pour ranger son webmail (par exemple, &lt;code&gt;webmail.mondomaine.fr&lt;/code&gt;) en tapotant dans son navigateur préféré pour causer avec son gestionnaire de noms (on peut faire avec n'importe quoi d'autre, mais j'aime bien un nom pour un service). Laisser diffuser (toute la nuit).&lt;/li&gt;
&lt;li&gt;Créer un hôte virtuel. Recommencer parce qu'on se rend compte qu'on avait oublié de repasser super-utilisateur (jeter les morceaux non-utiles de la première tentative). J'ai un script qui me fait ça bien, en entrant le truc dans &lt;tt&gt;awstats&lt;/tt&gt;, et me prépare tout ce qu'il faut.&lt;/li&gt;
&lt;li&gt;Éditer l'hôte virtuel pour qu'il agisse en SSL (&lt;code&gt;https&lt;/code&gt;), parce que des mots de passe vont quand même être diffusés sur ce canal. Activer PHP5 pour cet hôte (j'ai une préférence pour l'activation avec FastCGI, me servant ponctuellement seulement de PHP ; moins d'encombrement mémoire quand je ne m'en sers pas, et possibilité d'utiliser les démons efficaces d'Apache).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/post/Gerer-plusieurs-sites-en-https-derriere-une-seule-adresse-IP&quot; hreflang=&quot;fr&quot;&gt;Générer un certificat&lt;/a&gt; qui accepte le nouveau nom &lt;code&gt;webmail.mondomaine.fr&lt;/code&gt; en plus des autres.&lt;/li&gt;
&lt;li&gt;Redémarrer Apache. Vérifier qu'on obtient bien un fichier rangé dans la racine du nouveau domaine.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo aptitude install roundcube&lt;/code&gt; et suivre les instructions. Il faut juste connaître le mot de passe de sa base de données (je le connaissais).&lt;/li&gt;
&lt;li&gt;Patauger cinq minutes pour être sûr de ce qu'il faut mettre. Se mettre dans la racine du nouveau domaine, et faire un &lt;code&gt;for i in /var/lib/roundcube/*; do ln -s $i; done&lt;/code&gt;. Recopier un fichier de lancement de php5 depuis un autre répertoire.&lt;/li&gt;
&lt;li&gt;Pointer son navigateur sur &lt;code&gt;https://webmail.mondomaine.fr/&lt;/code&gt;. Tester une première connexion. Tout marche. Constater que la connexion au serveur n'est pas en https, et qu'on ne peut pas du coup se connecter directement aux autres serveurs (celui de mon laboratoire, par exemple).&lt;/li&gt;
&lt;li&gt;Modifier une ligne de &lt;code&gt;config/main.inc.php&lt;/code&gt; pour faire apparaître à la place &lt;code&gt;$rcmail_config['default_host'] = array('ssl://monimap.mondomaine.fr','ssl://mail.monboulot.fr','ssl://monautreserveur.fr');&lt;/code&gt;. Laisser refroidir, c'est prêt.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voici le fichier final dans &lt;code&gt;/etc/apache2/sites-available/webmail.mondomaine.fr&lt;/code&gt; et juste derrière celui pour lancer FCGI&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;virtualHost *:443=&quot;&quot;&amp;gt;&lt;br /&gt;DocumentRoot /var/www/webmail.mondomaine.fr/&lt;br /&gt;ServerName webmail.mondomaine.fr&lt;br /&gt;ErrorLog /var/log/apache2/webmail.mondomaine.fr/error.log&lt;br /&gt;CustomLog /var/log/apache2/webmail.mondomaine.fr/access.log combined&lt;br /&gt;SSLEngine on&lt;br /&gt;SSLCertificateFile /etc/apache2/ssl/oberon.mondomaine.fr.crt&lt;br /&gt;SSLCertificateKeyFile /etc/apache2/ssl/oberon.mondomaine.fr.key&lt;br /&gt;ServerAdmin monadresse@chezmoi.fr&lt;br /&gt;AddDefaultCharset utf-8&lt;br /&gt;DirectoryIndex index.html index.php&lt;br /&gt;#  Uncomment to use PHP5&lt;br /&gt;AddHandler fastcgi-script .fcgi&lt;br /&gt;AddHandler php-fastcgi .php&lt;br /&gt;AddHandler php5-fastcgi .php5&lt;br /&gt;Action php-fastcgi /php5-wrapper.fcgi&lt;br /&gt;Action php5-fastcgi /php5-wrapper.fcgi&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/dash&lt;br /&gt;PHP_FCGI_CHILDREN=4&lt;br /&gt;export PHP_FCGI_CHILDREN&lt;br /&gt;PHP_FCGI_MAX_REQUESTS=1000&lt;br /&gt;export PHP_FCGI_MAX_REQUESTS&lt;br /&gt;exec /usr/bin/php5-cgi&lt;/pre&gt;
&lt;p&gt;[Ajout]&amp;nbsp;: J'ai dû aussi modifier une autre ligne, pour mettre &lt;code&gt;$rcmail_config['create_default_folders'] = TRUE;&lt;/code&gt;. Sinon, je ne pouvais pas effacer les messages.&lt;/p&gt;</content:encoded>
	<dc:date>2008-03-26T08:45:04+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/03/22/freelance-howto-1.html">
	<title>Roland Mas: Freelance HOWTO, première</title>
	<link>http://roland.entierement.nu/blog/2008/03/22/freelance-howto-1.html</link>
	<content:encoded>&lt;p&gt;Je m'aperçois que ce Freelance HOWTO, que j'avais promis il y a fort
longtemps déjà, n'a toujours pas été écrit.  Donc, je m'y mets.  Comme
c'est un peu long, ce sera en plusieurs parties.  La première restera
assez générale ; je n'ai pas encore rédigé les suivantes, mais il est
probable qu'il y en aura trois au final.&lt;/p&gt;

&lt;h3&gt;Buts et contexte&lt;/h3&gt;

&lt;p&gt;Je suis monsieur M., j'ai acquis des compétences d'une manière ou
d'une autre, et je pense qu'il y a un marché et que je pourrais
essayer de vivre de ces compétences.  Je vais donc créer mon
entreprise, pour proposer mes services à des clients contre
rémunération, soit à temps partiel (par exemple pour tâter le terrain)
soit à temps plein (une fois que je suis convaincu de la viabilité de
mon entreprise).&lt;/p&gt;

&lt;p&gt;(Ce HOWTO se focalise sur les entreprises de services.  Pour les
entreprises qui font plutôt du commerce, c'est-à-dire de l'achat et de
la revente de produits, les contraintes sont un peu différentes, et je
connais moins le domaine, donc demandez un avis plus éclairé.)&lt;/p&gt;

&lt;h3&gt;Préalables&lt;/h3&gt;

&lt;p&gt;Avant de se lancer et de prendre le moindre engagement, il convient de
se demander si les chances de l'entreprise sont raisonnables.
Théoriquement, il faudrait faire (ou faire faire) une étude de marché
complète, mais ça peut coûter cher.  Commencer par essayer de se faire
une idée des réponses aux questions suivantes : Y a-t-il réellement un
besoin ?  Des clients ?  Ces clients sont-ils prêts à payer pour le
service rendu ?  Y a-t-il déjà des entreprises qui fournissent le
service à ces clients ?  Si oui, reste-t-il de la place pour une de plus ?&lt;/p&gt;

&lt;p&gt;En fonction de ces réponses, on pourra déjà dans certains cas avoir
une idée de la viabilité du projet.  Si c'est pas bon, il est
conseillé d'arrêter, ou de faire évoluer le projet pour que ça
devienne bon.&lt;/p&gt;

&lt;h3&gt;Forme juridique&lt;/h3&gt;

&lt;p&gt;Une « entreprise » peut avoir plusieurs formes, et fonctionner selon
plusieurs statuts.  Il faut notamment distinguer le statut juridique
(la forme sous laquelle l'entreprise existe) et son statut fiscal (la
manière selon laquelle les impôts et taxes sont calculés et payés).
Les deux sont plus ou moins liés, puisque certaines combinaisons ne
sont pas autorisées, mais il reste plusieurs possibilités.&lt;/p&gt;

&lt;p&gt;Je ne détaille ici que deux statuts, celui de l'entreprise
individuelle et celui de l'EURL/SARL.  Les autres statuts (SA, SAS,
SCIC etc.) sont plus complexes à mettre en place, et sont de toute
manière moins adaptés à l'objet de ce billet, qui vise principalement
quelqu'un qui veut « se mettre à son compte ».&lt;/p&gt;

&lt;p&gt;Le statut d'entreprise individuelle (EI) est le plus simple.  Il
consiste simplement à s'enregistrer à l'URSSAF, ce qui donne un numéro
SIREN/SIRET, et le droit d'émettre des factures.  Il n'y a pas de
société, pas de personne morale séparée, l'entreprise et
l'entrepreneur sont juridiquement identiques.&lt;/p&gt;

&lt;p&gt;Si l'on souhaite séparer l'activité professionnelle et la personne
physique, il faut passer par la création d'une société.  Pour une
activité de petite taille, on crée généralement une SARL, société à
responsabilité limitée.  Et même, quand on est tout seul, on appelle
ça une EURL, entreprise unipersonnelle à responsabilité limitée (c'est
juste un cas particulier de SARL, qui ne change pas grand-chose au fonctionnement).
La création d'une SARL/EURL passe par des formalités plus complexes :
rédaction de statuts de société par un juriste, publication dans un
journal d'annonces légales, inscription au registre du commerce et des
sociétés, etc.  La contrepartie est cette séparation des biens entre
l'entreprise et l'entrepreneur.&lt;/p&gt;

&lt;p&gt;Séparation toute relative, ceci dit : si la société fait faillite, la
responsabilité du gérant pourra quand même être mise en jeu en cas de
gestion manifestement mauvaise.  Et même sans parler de ce cas
extrême, il faut garder à l'esprit que les dettes de l'entreprise
correspondront souvent à des emprunts, et que ces emprunts ne seront
probablement accordés qu'avec des garanties personnelles de
l'entrepreneur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fin&lt;/strong&gt; de cette première partie.  La prochaine fois, nous verrons ce
qui est perçu (ou présenté) comme le frein majeur qui décourage
l'entreprenariat français : les charges (sociales et fiscales).&lt;/p&gt;</content:encoded>
	<dc:date>2008-03-22T14:08:51+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/03/22/un-dollar.html">
	<title>Roland Mas: Un dollar !</title>
	<link>http://roland.entierement.nu/blog/2008/03/22/un-dollar.html</link>
	<content:encoded>&lt;p&gt;Quand j'étais petit, on avait dans ma cour d'école une
blague/devinette qui nous faisait beaucoup rire :&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Quelle est la différence entre un dollar et un rouble ? &lt;br /&gt;
  Réponse : Un dollar !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pour remettre dans le contexte : à l'époque, l'étranger se divisait en
deux catégories.  Il y avait d'un côté les Américains, riches et
puissants, et de l'autre les Russes, dont il fallait se méfier parce
qu'ils étaient puissants aussi, bien qu'on ne sache pas trop comment.
Les Russes n'avaient pas d'argent ou presque, le peu qu'ils avaient ne
valait pas grand-chose, et de toute façon ils ne pouvaient rien en
faire puisque leurs magasins étaient vides.  Et c'était bien fait pour
eux, puisque c'était eux les méchants (la preuve : nous, les
gentils par définition, on était copains avec les Ricains).&lt;/p&gt;

&lt;p&gt;Le monde a un peu changé depuis, mais cette blague pourra bientôt être
remise au goût du jour, à peine modifiée :&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Quelle est la différence entre un dollar et un euro ? &lt;br /&gt;
  Réponse : Un dollar !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(OK, aujourd'hui c'est juste 0,57 dollar, mais ça va monter, patience.)&lt;/p&gt;</content:encoded>
	<dc:date>2008-03-22T13:43:21+00:00</dc:date>
</item>
<item rdf:about="http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-2/">
	<title>Gr&amp;#233;gory Colpart: Autre exemple de migration Sarge-&gt;Etch [2]</title>
	<link>http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-2/</link>
	<content:encoded>&lt;p&gt;Après les épisodes &lt;a href=&quot;http://gcolpart.evolix.net/blog21/un-exemple-de-migration-debian-sarge-etch-0/&quot;&gt;[0]&lt;/a&gt; et &lt;a href=&quot;http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-1/&quot;&gt;[1]&lt;/a&gt;, voici la mise-à-jour d&amp;#8217;un poste de travail mono-utilisateur KDE/Mozilla/OpenOffice, en place depuis 2 ans environ dans une association. Les remarques concernant la migration sont les suivantes :&lt;/p&gt;
&lt;p&gt;- Au niveau de la mise-à-jour complète des paquets (le &lt;em&gt;dist-upgrade&lt;/em&gt;), il a été nécessaire de forcer la mise-à-jour de KDE. En effet, &lt;em&gt;aptitude install kde&lt;/em&gt; a permis la désinstallation des paquets libhal0 et dbus-1 spécifiques à Sarge.&lt;/p&gt;
&lt;p&gt;- Il a été nécessaire de récupérer manuellement la clé GPG pour authentifier les paquets avec aptitude.&lt;/p&gt;
&lt;p&gt;- Au niveau de KDE, les icônes sur le bureau ont été désorganisés (tous rassemblés en haut à gauche) et l&amp;#8217;application KGPG était lancée par défaut (à désactiver car non utilisée dans ce cas précis).&lt;/p&gt;
&lt;p&gt;Bref, surtout des détails. Aucun soucis au niveau de Firefox-&amp;gt;Iceweasel et Thunderbird-&amp;gt;Icedove (le plus gênant était le changement des&amp;#8230; icônes), au niveau d&amp;#8217;OpenOffice v1-&amp;gt;v2, CUPS, GAIM, etc.  La conclusion de cette mise-à-jour a été : « C&amp;#8217;est réparti pour 2 ans de stabilité ! » Qui a dit que Debian n&amp;#8217;était pas prêt pour le poste de travail en environnement professionnel ?&lt;/p&gt;</content:encoded>
	<dc:date>2008-03-08T12:07:03+00:00</dc:date>
</item>
<item rdf:about="urn:md5:b7adfc4173de7dd221bdbec930ddab5b">
	<title>Jean-Christophe Dubacq: Lightning 0.7 pour icedove</title>
	<link>http://jean-christophe.dubacq.fr/post/Lightning-07-pour-icedove</link>
	<content:encoded>&lt;p&gt;Une nouvelle version de Lightning, qui corrige plein de bugs, qui fait suite à &lt;a href=&quot;http://jean-christophe.dubacq.fr/index.php?post/2007/07/03/Lightning-05-pour-icedove&quot; hreflang=&quot;fr&quot;&gt;d'autres&lt;/a&gt; &lt;a href=&quot;http://jean-christophe.dubacq.fr/index.php?post/2007/05/24/Icedove-20-Lightning-et-Google-Calendar&quot; hreflang=&quot;fr&quot;&gt;articles&lt;/a&gt; dans ce blog. La &lt;a href=&quot;http://www.mozilla.org/projects/calendar/releases/lightning0.7.html&quot; hreflang=&quot;en&quot;&gt;version 0.7&lt;/a&gt; remplace la version 0.5 précédente. J'ai recompilé rapidement l'extension sur une installation toute propre de Icedove 2.0.0.6. J'ai mis un peu de temps à trouver les &lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/calendar/sunbird/releases/0.7/source/&quot; hreflang=&quot;fr&quot;&gt;sources&lt;/a&gt; qui ont bougé par rapport à la version 0.5. À noter que la mise à jour de &lt;a href=&quot;https://addons.mozilla.org/en-US/thunderbird/addon/4631&quot; hreflang=&quot;en&quot;&gt;Google Provider for Sunbird/Lightning&lt;/a&gt; nécessite la mise à jour. Comme d'habitude, il faut recompiler cette extension pour Icedove (Thunderbird™ pour Debian).&lt;/p&gt;    &lt;p&gt;Je détaille à nouveau la procédure suivie pour le recompiler (je suppose que &lt;tt&gt;pbuilder&lt;/tt&gt; est installé, suit &lt;tt&gt;unstable&lt;/tt&gt; et fonctionne correctement)&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;pbuilder update; pbuilder login&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Modifier &lt;tt&gt;/etc/apt/sources.list&lt;/tt&gt; pour y faire apparaître le dépôt source&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;apt-get update; apt-get install wget; apt-get build-dep icedove; apt-get source icedove&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd icedove-2.0.0.6; tar xjf icedove-source-2.0.0.6.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;wget http://releases.mozilla.org/pub/mozilla.org/calendar/sunbird/releases/0.7/source/lightning-sunbird-0.7-source.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;tar xjf lightning-sunbird-0.7-source.tar.bz2 mozilla/calendar&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;rm icedove-2.0.0.6.tar.bz2;tar cjf icedove-2.0.0.6.tar.bz2 mozilla/;rm lightning-sunbird-0.7-source.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Modifier &lt;tt&gt;debian/rules&lt;/tt&gt; pour faire apparaître (ligne 71) &lt;tt&gt;--enable-extensions=default,lightning \&lt;/tt&gt; à la place de &lt;tt&gt;--enable-extensions=default \&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;debian/rules binary&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Faire autre chose pendant un bon moment&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd build-tree/mozilla/dist/xpi-stage/&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;wget http://releases.mozilla.org/pub/mozilla.org/calendar/lightning/releases/0.7/lightning-0.7.linux-i686.xpi&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;mkdir tmp;cd tmp;unzip ../lightning.xpi; unzip ../lightning-0.7.linux-i686.xpi&lt;/tt&gt; et accepter toutes les modifications dans &lt;tt&gt;chrome/&lt;/tt&gt; (et aussi &lt;tt&gt;chrome.manifest&lt;/tt&gt;).&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;zip -r ../lightning-0.7-icedove-amd64.xpi .&lt;/tt&gt; (ou bien &lt;tt&gt;i686&lt;/tt&gt;)&lt;/li&gt;
&lt;li&gt;Quand tout ceci est enfin fini, recopier (depuis l'extérieur du chroot créé par &lt;tt&gt;pbuilder&lt;/tt&gt;) le fichier qui se trouve dans &lt;tt&gt;.../icedove-2.0.0.6/build-tree/mozilla/dist/xpi-stage/lightning-0.7-icedove-amd64.xpi&lt;/tt&gt;. L'installer dans Icedove (Tools → Add-ons → Install ou Outils → Modules complémentaires → Installer). Servir frais.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour ceux qui ont patienté jusqu'au bout, j'ai attaché les fichiers (avec les traductions, donc) à cet article, compilés pour &lt;tt&gt;amd64&lt;/tt&gt; ou &lt;tt&gt;i386&lt;/tt&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:7949b0c01c79f1c26be9fe22f7cd01c7">
	<title>Jean-Christophe Dubacq: Enfin un aquarium à baleines chez moi...</title>
	<link>http://jean-christophe.dubacq.fr/post/Enfin-un-aquarium-a-baleines-chez-moi</link>
	<content:encoded>&lt;p&gt;L'un des premiers économiseurs d'écrans que j'ai eu était une sorte d'aquarium virtuel. Bon, des poissons plats passaient de gauche à droite et de droite à gauche devant l'écran.&lt;/p&gt;    &lt;p&gt;Depuis longtemps, on peut utiliser plusieurs «&amp;nbsp;écrans&amp;nbsp;» sous Linux. On les considère souvent rangés à côté les uns des autres. On peut même imaginer que le premier est à nouveau à droite du dernier, faisant un anneau. On laisse ses fenêtres de travail sur un des écrans, le courrier sur un deuxième, etc. Quand on change d'écran, on ne voit plus les fenêtres des autres écrans (virtuels). Je ne suis pas Terry Pratchett&lt;a href=&quot;http://jean-christophe.dubacq.fr/post/#footnote1&quot; title=&quot;note de bas de page&quot;&gt;¹&lt;/a&gt;, je n'ai pas six moniteurs pour travailler.&lt;a href=&quot;http://jean-christophe.dubacq.fr/post/#footnote2&quot; title=&quot;note de bas de page&quot;&gt;²&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Maintenant, pour gérer l'affichage de mes fenêtres, j'utilise la toute nouvelle interface &lt;strong&gt;Compiz-fusion&lt;/strong&gt;. Elle n'est pas distribuée en standard dans Debian, mais on la trouve dans le dépôt de &lt;a href=&quot;http://shame.tuxfamily.org/repo/?cat=11&quot; hreflang=&quot;en&quot;&gt;Shame&lt;/a&gt;. Elle permet de faire des tas de choses (tournoyer son écran, rendre translucide des fenêtres qui sont molles quand on les bouge...) Rien de très intéressant (enfin, si&amp;nbsp;: ça a un taux de geekitude très élevé). Note technique&amp;nbsp;: j'ai dû utilisé la méthode &lt;tt&gt;ini&lt;/tt&gt; pour stocker la configuration au lieu de &lt;tt&gt;gconf&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Jusqu'à ce que je trouve le greffon &lt;tt&gt;Atlantis&lt;/tt&gt;.&lt;/p&gt;
&lt;div class=&quot;photo&quot;&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/Capture.png&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/.Capture_m.jpg&quot; alt=&quot;Capture d'écran avec le greffon « Atlantis »&quot; title=&quot;Capture d'écran avec le greffon « Atlantis »&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;legende&quot;&gt;Capture d'écran avec le greffon « Atlantis »&amp;nbsp;: un aquarium est caché derrière votre écran&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Oui, ça ne sert à rien. Lorsqu'on tourne (avec la souris) son «&amp;nbsp;cube de bureau&amp;nbsp;» (et oui, il y a une face au-dessus et au-dessous), on voit apparaître des baleines et des requins qui nagent derrière. En temps réel. En trois dimensions. &lt;q lang=&quot;fr&quot;&gt;Non, non, c'est bien plus beau lorsque c'est inutile&amp;nbsp;!&lt;/q&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span id=&quot;footnote1&quot;&gt;1&lt;/span&gt;&amp;nbsp;: Authentique (source, moi).&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;footnote2&quot;&gt;2&lt;/span&gt;&amp;nbsp;: Authentique (source, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Terry_Pratchett&quot; hreflang=&quot;fr&quot;&gt;Terry Pratchett&lt;/a&gt;, Discworld Convention 2006).&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:71e3749e112ea1489539565692949f0a">
	<title>Jean-Christophe Dubacq: Emacs avec les polices anticrénelées</title>
	<link>http://jean-christophe.dubacq.fr/post/Emacs-avec-les-polices-anticrenelees</link>
	<content:encoded>&lt;p&gt;J'utilise Emacs pour un certain nombre d'activités (principalement quand je tape en LaTeX, en Perl et en Postscript).&lt;/p&gt;
&lt;p&gt;Une &lt;a href=&quot;http://peadrop.com/blog/2007/01/06/pretty-emacs/&quot; hreflang=&quot;en&quot;&gt;nouvelle avait attiré mon attention il y a quelque temps&lt;/a&gt;. Emacs est donc maintenant capable d'utiliser toutes les polices du système, à n'importe quelle taille. À la suite de la requête d'un collègue, j'en ai profité pour le tester... et l'adopter.&lt;/p&gt;
&lt;div&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/emacs-snapshot.png&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/emacs-snapshot.png&quot; alt=&quot;Emacs-snapshot (emacs-unicode-2 branch)&quot; title=&quot;Emacs-snapshot (emacs-unicode-2 branch)&quot; /&gt;&lt;/a&gt;&lt;/div&gt;    &lt;p&gt;La méthode était facile au laboratoire, installé en architecture i386. En effet, Ubuntu (ou un de ses développeurs ou utilisateur&amp;nbsp;: &lt;a href=&quot;http://peadrop.com/&quot; hreflang=&quot;en&quot;&gt;Alexandre Vassalotti&lt;/a&gt;) fournit des paquets pour emacs-snapshot qui utilisent la branche &lt;tt&gt;emacs-unicode-2&lt;/tt&gt; de développement. Recompiler ça ne m'a pas posé de problèmes.&lt;/p&gt;
&lt;p&gt;À la maison, ma machine utilise l'architecture &lt;tt&gt;amd64&lt;/tt&gt;, non prévue par M. Vassalotti. Il a donc fallu recommencer le travail (un quart d'heure, environ).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mettre à jour mon installation de &lt;tt&gt;pbuilder&lt;/tt&gt; (il faudra que je fasse un tutorial un jour là-dessus, mais il y en a déjà tellement...&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd /tmp;wget http://debs.peadrop.com/pool/feisty/backports/emacs-snapshot_20070705.orig.tar.gz&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;wget http://debs.peadrop.com/pool/feisty/backports/emacs-snapshot_20070705-1.dsc&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;wget http://debs.peadrop.com/pool/feisty/backports/emacs-snapshot_20070705-1.diff.gz&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;sudo pbuilder build emacs-snapshot_20070705-1.dsc&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Le résultat est une série de paquets dans votre emplacement de résultats (par défaut &lt;tt&gt;/var/cache/pbuilder/result&lt;/tt&gt;). J'ai installé les paquets &lt;tt&gt;emacs-snapshot&lt;/tt&gt;, &lt;tt&gt;emacs-snapshot-bin-common&lt;/tt&gt;, &lt;tt&gt;emacs-snapshot-common&lt;/tt&gt; et &lt;tt&gt;emacs-snapshot-gtk&lt;/tt&gt;, puis mis en mode automatique tous sauf le dernier (&lt;tt&gt;aptitude markauto emacs-snapshot emacs-snapshot-bin-common emacs-snapshot-common&lt;/tt&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exceptionnellement, je ne mettrai pas le résultat de la compilation sur ce blog&amp;nbsp;; le paquet fait plus de 20 Mo (c'est gros, emacs). On le trouve sur mon &lt;a href=&quot;http://linux-mirror.tenebreuse.org/debian/&quot; hreflang=&quot;fr&quot;&gt;miroir partiel&lt;/a&gt; (comme d'habitude) et j'incite plutôt les gens à le recompiler par eux-même (comme d'habitude).&lt;/p&gt;
&lt;p&gt;Maintenant, je veux maintenir la compatibilité avec la version stable d'Emacs (22). Pour cela j'ai inséré dans mon &lt;tt&gt;.emacs&lt;/tt&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;(setq running-emacs-23 (&amp;gt; emacs-major-version 22))&lt;br /&gt;&lt;br /&gt;(if running-emacs-23&lt;br /&gt;        (progn&lt;br /&gt;                (set-default-font &quot;Monospace-11&quot;)&lt;br /&gt;        )&lt;br /&gt;)&lt;br /&gt;(setq inhibit-startup-message t)&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;NB&amp;nbsp;:&lt;/strong&gt; Le &lt;tt&gt;progn&lt;/tt&gt; n'est nécessaire que si on veut faire plusieurs réglages séparés. Pour le moment, je n'en ai qu'un. La dernière ligne annule le comportement agaçant (pour moi) de l'écran de publicité au démarrage d'Emacs. Quand je lance Emacs, je veux travailler, pas savoir ce que j'utilise (depuis 1993).&lt;/p&gt;
&lt;div&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/emacs-snapshot2.png&quot; alt=&quot;Toute sortes d'abus sont possibles&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:bc4489bf4b787147a7cec60f78ad1f7d">
	<title>Jean-Christophe Dubacq: Adobe sur amd64 sans chroot: Acrobat et Flash</title>
	<link>http://jean-christophe.dubacq.fr/post/adobe-sur-amd64-sans-chroot-acrobat-flash</link>
	<content:encoded>&lt;p&gt;Je viens de commencer à installer sérieusement des machines de bureau en 64 bits à mon travail, et ça me donne l'occasion de me heurter aux principaux problèmes de la transition en 64 bits: les applications commerciales prévues uniquement pour fonctionner en 32 bits.&lt;/p&gt;
&lt;p&gt;Je vais m'attaquer ici aux interfaces fournies par Adobe pour lire le PDF (Acrobat Reader) et le Flash (Plugin flash). Toutefois, cernons un peu le cadre: ces applications fonctionnent sans trop de soucis sur une machine 32 bits, et un des conseils traditionnels est d'installer un &lt;tt&gt;chroot&lt;/tt&gt; en 32 bits, c'est-à-dire une réplique (miniature) d'un système en 32 bits. Si vous choisissez cette méthode, des tas de descriptifs existent ailleurs. Mais je ne voulais pas cette solution, qui souffre de nombreux inconvénients. J'ai donc installé les logiciels sus-cités en &lt;em&gt;biarch&lt;/em&gt;, c'est-à-dire avec des bibliothèques systèmes en 32 bits (à côté des bibliothèques systèmes en 64 bits) et l'utilisation d'un mode spécial du processeur (qui accepte les instructions 32 bits comme 64 bits).&lt;/p&gt;    &lt;h2&gt;Le choix du modèle&amp;nbsp;: chroot ou biarch&amp;nbsp;?&lt;/h2&gt;
&lt;p&gt;Le premier choix a été d'éliminer la méthode du &lt;tt&gt;chroot&lt;/tt&gt;, pour ses multiples inconvénients&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un chroot en 32 bits a besoin d'être mis à jour, comme un vrai système. Ce qui est bien pour un système personnel, mais quand on gère des machines en grand nombre, ce n'est pas agréable.&lt;/li&gt;
&lt;li&gt;Il est possible de faire de l'escalade de droits assez facilement à l'intérieur d'un chroot, en tout cas plus facilement qu'à l'intérieur d'un vrai système. Ce n'est qu'un quart de demi-problème (de toute façon, nous utilisons NFS).&lt;/li&gt;
&lt;li&gt;Il faut dupliquer les applications et les montages. Nous utilisons beaucoup de montages, et si on veut que tout soit accessible de la même façon, il faut répliquer les montages. Dans pas mal de configurations, par exemple, le répertoire &lt;tt&gt;/tmp&lt;/tt&gt; n'est pas le même dans le chroot que dans le système natif, et c'est très perturbant (surtout que certains programmes déposent leurs résultats dans ce répertoire, par exemple chez nous &lt;tt&gt;cups-pdf&lt;/tt&gt;). De plus ça gâche de l'espace (et jusqu'à quel point faut-il dupliquer)&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Il faut penser à lancer le programme en 32 bits dès le début, et pas seulement au moment où on a besoin de la compatibilité 32 bits. Les programmes doivent être lancés avec une syntaxe particulière.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Il y en a d'autres, sans doute. J'étais déjà convaincu.&lt;/p&gt;
&lt;h2&gt;Acroread ou le travail déjà tout fait&lt;/h2&gt;
&lt;p&gt;La pertinence de s'attaquer à &lt;tt&gt;acroread&lt;/tt&gt; se pose&amp;nbsp;: pourquoi ne pas utiliser un des multiples programmes comme &lt;tt&gt;xpdf&lt;/tt&gt; ou &lt;tt&gt;evince&lt;/tt&gt; qui permet d'imprimer du PDF tout aussi bien et plus rapidement que Acrobat Reader&amp;nbsp;? Parce que bien que j'encourage leur usage, il y a des cas où il s ne sont pas utilisables. Par exemple, les &lt;a href=&quot;http://bamgames.free.fr/Europa/EU8/&quot;&gt;cartes du monde&lt;/a&gt; que j'ai fabriquées pour un wargame auquel je participe sont monstrueusement longues à ouvrir parce que xpdf ne fait pas un rendu partiel de l'affichage (surtout quand on zoome), ce que sait faire parfaitement Acrobat Reader sous Linux. De plus, les options d'impression d'Acrobat Reader sont nettement plus riches.&lt;/p&gt;
&lt;p&gt;Je connaissais plutôt bien le paquet &lt;tt&gt;acroread&lt;/tt&gt;, mon nom étant déjà dans le changelog. Le travail était déjà presque fait pour Acrobat Reader (&lt;a href=&quot;http://wiki.debian.org/DebianAMD64Faq&quot; hreflang=&quot;en&quot;&gt;dans la FAQ Debian AMD64&lt;/a&gt;). Il m'a suffi de prendre le paquet disponible sur le dépôt &lt;a href=&quot;http://www.debian-multimedia.org&quot; hreflang=&quot;en&quot;&gt;debian-multimedia&lt;/a&gt; (&lt;tt&gt;acroread_7.0.9-0.2sarge1_i386.deb&lt;/tt&gt;). Une fois fait, j'ai fait les modifications suivantes&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extraire le contenu du paquet: &lt;tt&gt;dpkg -x acroread_7.0.9-0.2sarge1_i386.deb /tmp/acro&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Extraire les méta-données du paquet: &lt;tt&gt;dpkg -e acroread_7.0.9-0.2sarge1_i386.deb /tmp/acro/DEBIAN&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Modifier les méta-données du paquet &lt;tt&gt;/tmp/acro/DEBIAN/control&lt;/tt&gt;: ajouter la dépendance sur &lt;tt&gt;ia32-libs-gtk&lt;/tt&gt; et &lt;tt&gt;ia32-libs&lt;/tt&gt;. Changer l'architecture de &lt;tt&gt;i386&lt;/tt&gt; à &lt;tt&gt;amd64&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Modifier &lt;tt&gt;/tmp/acro/usr/bin/acroread&lt;/tt&gt; pour que les dernières lignes soient:&lt;/li&gt;
&lt;pre class=&quot;code&quot;&gt;  export GTK_PATH=/usr/lib32/gtk-2.0/&lt;br /&gt;  export GCONV_PATH=/usr/lib32/gconv&lt;br /&gt;  export PANGO_RC_FILE=/etc/pango32/pangorc&lt;br /&gt;  export GDK_PIXBUF_MODULE_FILE=/etc/gtk-2.0/gdk-pixbuf.loaders.32&lt;br /&gt;  export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gdk.immodules.32&lt;br /&gt;  exec &quot;$ACRO_EXEC_CMD&quot; ${1+&quot;$@&quot;}&lt;/pre&gt;
&lt;li&gt;Ré-empaqueter le tout: &lt;tt&gt;cd /tmp/acro;dpkg-deb --build; cd ..; mv acro.deb acroread_7.0.9-0.2sarge1_amd64.deb&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Recommencer à faire la même chose pour &lt;tt&gt;acroread-escript&lt;/tt&gt; (il n'y a que l'architecture à changer) et &lt;tt&gt;acroread-plugins&lt;/tt&gt; (il faut supprimer &lt;tt&gt;.../usr/lib/Adobe/Acrobat7.0/Reader/intellinux/plug_ins/PPKLite.api&lt;/tt&gt; car incompatible avec le 64 bits).
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On obtient ainsi trois paquets, parfaitement viables et installables sur &lt;tt&gt;amd64&lt;/tt&gt;, et qui fonctionnent très bien. On les trouve sur mon &lt;a href=&quot;http://linux-mirror/debian/&quot; hreflang=&quot;fr&quot;&gt;miroir partiel personnel&lt;/a&gt;. Je mets ici la liste des trois paquets, mais si jamais un jour je fais une version plus à jour, les liens risquent de ne plus être bons&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://linux-mirror.tenebreuse.org/debian/dists/lipn/main/binary-amd64/acroread_7.0.9-0.2sarge1_amd64.deb&quot;&gt;acroread&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linux-mirror.tenebreuse.org/debian/dists/lipn/main/binary-amd64/acroread-escript_7.0.9-0.2sarge1_amd64.deb&quot;&gt;acroread-escript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linux-mirror.tenebreuse.org/debian/dists/lipn/main/binary-amd64/acroread-plugins_7.0.9-0.2sarge1_amd64.deb&quot;&gt;acroread-plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Flash plugin (version Adobe)&lt;/h2&gt;
&lt;p&gt;Il en est un peu de même que pour &lt;tt&gt;acrobat-reader&lt;/tt&gt;&amp;nbsp;: il y a une &lt;a href=&quot;http://swfdec.freedesktop.org/wiki/&quot; hreflang=&quot;en&quot;&gt;alternative&lt;/a&gt; qui depuis peu sait même lire les vidéos empaquetées en Flash. Mais tant que la compatibilité n'est pas quasi-parfaite (et des dires même du développeur, il reste du travail), je préfère la sécurité.&lt;/p&gt;
&lt;p&gt;Le travail est là-aussi presque complètement fait, à l'exception du détail suivant: le paquet &lt;tt&gt;flashplugin-nonfree&lt;/tt&gt; fonctionne sur les deux architectures (à l'aide en particulier du paquet &lt;tt&gt;nspluginwrapper&lt;/tt&gt;, qui permet de faire fonctionner un plugin 32 bits dans un navigateur Mozilla (Firefox, Iceweasel, etc.) de façon complètement transparente. Le détail était que le paquet n'était pas compilé dans la même version dans les deux architectures, et pour des questions de cohérence du parc, je préférais avoir les mêmes versions. C'est maintenant obsolète comme détail. Donc, c'est fini, et on pouvait voir les images tremblotantes de YouTube s'agiter à l'intérieur d'un navigateur fonctionnant en 64 bits.&lt;/p&gt;
&lt;h2&gt;LibFlashSupport (support du son par le plugin flash)&lt;/h2&gt;
&lt;p&gt;Il ne reste en fait qu'un petit détail, mais bon, un détail qui a son importance. C'est que les images de YouTube étaient parfaitement muettes&amp;nbsp;! Et pire, je savais pourquoi. J'utilise un serveur de son (&lt;a href=&quot;http://www.pulseaudio.org/&quot; hreflang=&quot;en&quot;&gt;PulseAudio&lt;/a&gt;) qui me sert à faire le multiplexage (écoute simultanée) de multiples canaux sonores. J'ai cru comprendre que ça pouvait être fait par &lt;a href=&quot;http://www.alsa-project.org/&quot;&gt;ALSA&lt;/a&gt; directement (mais il y a des conditions à ce que j'en ai lu, par exemple l'alerte en rouge &lt;a href=&quot;http://gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix#Intro_to_dmix&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt;), mais je n'ai jamais compris comment, et surtout, ça ne marche pas de façon directe et immédiate. La configuration d'ALSA est bien trop ésotérique pour moi. De plus, un serveur de sons à d'autres avantages, comme de régler individuellement (et graphiquement) le volume sonore de chaque flux, la possibilité de transporter le son via le réseau, etc. Enfin bref, je l'utilise, et je n'allais pas m'en passer.&lt;/p&gt;
&lt;p&gt;Même sans le serveur de son, le plugin Flash supporte mal la cohabitation avec d'autres sources sonores. Il s'approprie la carte son, et s'il ne peut pas, ne joue pas de son. Si un autre programme s'est comporté pareil (par exemple, le lecteur de musique), on est face à un problème (même si le lecteur de musique est en pause).&lt;/p&gt;
&lt;p&gt;La solution, en 32 bits, est d'utiliser &lt;a href=&quot;http://pulseaudio.revolutionlinux.com/PulseAudio&quot;&gt;libflashsupport&lt;/a&gt; fourni par &lt;a href=&quot;http://www.revolutionlinux.com/&quot; hreflang=&quot;fr&quot;&gt;Révolution Linux&lt;/a&gt;, une société canadienne du microcosme Linux. C'est parfaitement libre, et ça marche tout seul. &lt;a href=&quot;http://pulseaudio.vdbonline.net/libflashsupport/&quot;&gt;CJ van den Berg&lt;/a&gt; a fabriqué des paquets Debian qui contiennent ce qu'il faut en 32 bits (même si un peu anciens). Et après avoir essayé, j'ai adopté.&lt;/p&gt;
&lt;p&gt;Restait le passage en 64 bits. J'ai le résultat, mais je préviens, c'est sale. &lt;tt&gt;libflashsupport&lt;/tt&gt; est en fait ouvert dynamiquement par le plugin Flash s'il est trouvé (que vous l'ayez ou pas, le plugin essaye de l'ouvrir). Il essaye de l'ouvrir dans les bibliothèques 32 bits. La recompilation du source n'a pas été très difficile, mais là, on se rend compte qu'il faut le recompiler en 32 bits (normal — je ne vais sans doute dire que des banalités, mais ça prend parfois un peu de temps à réaliser). On le recompile dans un &lt;tt&gt;chroot i386&lt;/tt&gt;, et après plusieurs essais, ça ne marche toujours pas. Mffff, pas de quoi, merci, continuons. Et quand on ne sait pas quoi faire, on examine le code. Et que voit-on&amp;nbsp;? &lt;tt&gt;libflashsupport&lt;/tt&gt; ouvre dynamiquement &lt;tt&gt;/usr/lib/libpulse-simple.so&lt;/tt&gt; pour voir si le plugin Flash doit essayer en priorité d'utiliser PulseAudio au lieu de ALSA directement (ce qui ne marche pas). L'ouverture dynamique se fait pas &lt;tt&gt;dlopen()&lt;/tt&gt;, et ne peut pas fonctionner, puisque &lt;tt&gt;/usr/lib/libpulse-simple.so&lt;/tt&gt; est en 64 bits.&lt;/p&gt;
&lt;p&gt;Qu'à cela ne tienne, il suffit de modifier le source. On fait donc ouvrir à &lt;tt&gt;libflashsupport&lt;/tt&gt; uniquement &lt;tt&gt;/usr/lib32/libpulse-simple.so&lt;/tt&gt; (notez la différence). Ainsi, on a une bibliothèque 32 bits ouverte dans une application 32 bits, tout va bien, tout le monde est content. Sauf que la bibliothèque &lt;tt&gt;libpulse-simple.so&lt;/tt&gt; n'est évidemment pas dans les quelques bibliothèques de base incluses dans les paquets &lt;tt&gt;ia32-libs&lt;/tt&gt; et &lt;tt&gt;ia32-libs-gtk&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;On en arrive à la dernière étape. Où trouver ces bibliothèques&amp;nbsp;? Après tout, je suis déjà dans le domaine de la bidouille, donc je décide de les copier bêtement de mon chroot i386. Il faut les copier elles, plus toutes leur dépendances nécessaires (&lt;tt&gt;libpulse.so&lt;/tt&gt;, &lt;tt&gt;libssl.so&lt;/tt&gt;, &lt;tt&gt;libcrypt.so&lt;/tt&gt;, &lt;tt&gt;libcap.so&lt;/tt&gt;). Je mets tout ça dans le paquet, et tant pis pour le paquet source&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;Le résultat est un petit paquet facile à installer, qui marche bien, et qui a beaucoup de choses sales dedans. Mais ce qui compte, c'est que ça marche, non&amp;nbsp;?&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:ee44a667d44d1f6e7c101b06d5a96188">
	<title>Jean-Christophe Dubacq: Lightning 0.5 pour icedove</title>
	<link>http://jean-christophe.dubacq.fr/post/Lightning-05-pour-icedove</link>
	<content:encoded>&lt;p&gt;J'ai déjà parlé de &lt;a href=&quot;http://jean-christophe.dubacq.fr/index.php?post/2007/05/24/Icedove-20-Lightning-et-Google-Calendar&quot; hreflang=&quot;fr&quot;&gt;Lightning&lt;/a&gt; dans ce blog. La &lt;a href=&quot;http://weblogs.mozillazine.org/rumblingedge/archives/2006/12/sb_0-5.html&quot; hreflang=&quot;en&quot;&gt;version 0.5&lt;/a&gt; remplace la version 0.3.1 précédente. J'ai recompilé rapidement l'extension sur une installation toute propre de Icedove 2.0.0.4.dfsg1 (mais ça marche sur des versions légèrement antérieures, puisque j'ai encore la 2.0.0.3 quelque part et qu'il n'y a pas de bug évident). Je le recompile car plusieurs personnes m'ont signalé que Icedove est encore incompatible &lt;a hreflang=&quot;en&quot; href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=427015&quot;&gt;avec l'extension qu'on trouve partout pour i386&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[Mise à jour 16/07/2007]&lt;/strong&gt; J'ai ajouté un paragraphe correspondant à la fabrication d'un paquet qui contient les données permettant de traduire l'interface de Lightning.&lt;/p&gt;    &lt;p&gt;Je détaille un peu la procédure suivie pour le recompiler (je suppose que &lt;tt&gt;pbuilder&lt;/tt&gt; est installé, suit &lt;tt&gt;unstable&lt;/tt&gt; et fonctionne correctement)&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;pbuilder update; pbuilder login&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Modifier &lt;tt&gt;/etc/apt/sources.list&lt;/tt&gt; pour y faire apparaître le dépôt source&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;apt-get update; apt-get install wget; apt-get build-dep icedove; apt-get source icedove&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd icedove-2.0.0.4dfsg1; tar xjf icedove-2.0.0.4.dfsg1-source.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;wget http://releases.mozilla.org/pub/mozilla.org/calendar/lightning/releases/0.5/source/lightning-sunbird-0.5-source.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;tar xjf lightning-sunbird-0.5-source.tar.bz2 mozilla/calendar&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;rm icedove-2.0.0.4.dfsg1-source.tar.bz2;tar cjf icedove-2.0.0.4.dfsg1-source.tar.bz2&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Modifier &lt;tt&gt;debian/rules&lt;/tt&gt; pour faire apparaître (ligne 65) &lt;tt&gt;--enable-extensions=default,lightning \&lt;/tt&gt; à la place de &lt;tt&gt;--enable-extensions=default \&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;debian/rules binary&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Faire autre chose pendant un bon moment&lt;/li&gt;
&lt;li&gt;Quand la compilation est finie, recopier (depuis l'extérieur du chroot créé par &lt;tt&gt;pbuilder&lt;/tt&gt;) le fichier qui se trouve dans &lt;tt&gt;.../icedove-2.0.0.4.dfsg1/build-tree/mozilla/dist/xpi-stage/lightning.xpi&lt;/tt&gt;. L'installer dans Icedove (Tools → Add-ons → Install). Servir frais.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;[Mise à jour 16/07/2007]&lt;/strong&gt; Les données de traduction (nécessaires pour que Lightning fonctionne en différentes langues) sont un peu plus compliquées à inclure, car elles ne sont pas incluses dans le code source. Thomas Wassong
&lt;a href=&quot;http://thomas-wassong.de/lightning/lightning-0.5.l10n.xpi&quot; hreflang=&quot;fr&quot;&gt;a réussi à le faire&lt;/a&gt; — &lt;em&gt;viele danke, Thomas&lt;/em&gt;. La méthode est de télécharger l'un des paquets contenant déjà cette localisation (par exemple &lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/calendar/lightning/releases/0.5/lightning-0.5.linux-i686.xpi&quot;&gt;lightning-0.5.linux-i686.xpi&lt;/a&gt;), le dézipper (un &lt;tt&gt;.xpi&lt;/tt&gt; est en fait un fichier zippé, dézipper le &lt;tt&gt;.xpi&lt;/tt&gt; que vous venez de produire, y mettre tous les fichiers &lt;tt&gt;chrome/calendar-xx.jar&lt;/tt&gt; et &lt;tt&gt;chrome/lightning-xx.jar&lt;/tt&gt; du paquet officiel et rezippez le tout. Non, ce n'est pas propre, mais puisque les données de traduction ne sont pas dans le source...&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:a30446756f8bc529a42bc98544a5b1aa">
	<title>Jean-Christophe Dubacq: Mon élevage de modules nvidia</title>
	<link>http://jean-christophe.dubacq.fr/post/Mon-elevage-de-modules-nvidia</link>
	<content:encoded>&lt;p&gt;Depuis déjà plusieurs années, je dois régulièrement mettre à jour les noyaux d'un parc de 80 machines, et parmi ces machines, nombre d'entre elles (de marque Dell) ont des cartes Nvidia. J'installe donc les gestionnaires Nvidia, et comme je dois gérer beaucoup de machines, je l'installe via des paquets Debian.&lt;/p&gt;
&lt;p&gt;J'ai dû automatiser la tâche de construire ces paquets. On va me dire « Il y a &lt;tt&gt;module-assistant&lt;/tt&gt; ». C'est vrai. Mais &lt;tt&gt;module-assistant&lt;/tt&gt; ne fait pas le paquet en plusieurs versions de façon automatique. De plus, il y a parfois besoin de bricoler un peu les sources, voire les binaires, comme depuis le noyau 2.6.18-4 (et le problème d'exportation de symbole GPL/non-GPL de &lt;tt&gt;paravirt_ops&lt;/tt&gt;).&lt;/p&gt;    &lt;p&gt;Donc, j'ai construit mon élevage à modules. Je donne en argument trois valeurs : la version du noyau pour lequel je veux construire, la version des sources nvidia et la version des sources nvidia-legacy. Je lance mon script, et je finis avec le module NVidia et NVidia-legacy compilé pour les sous-architectures &lt;tt&gt;686&lt;/tt&gt;, &lt;tt&gt;686-bigmem&lt;/tt&gt; et &lt;tt&gt;k7&lt;/tt&gt; (ce sont les différents types de noyau utilisés sur l'ensemble des 80 machines).&lt;/p&gt;
&lt;p&gt;J'ai dû récemment modifier mon script pour qu'il tienne compte du bug &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=419943&quot; hreflang=&quot;en&quot;&gt;419943&lt;/a&gt; (j'aurais pu mentionné plusieurs bugs spécifiquement sur le paquet &lt;tt&gt;nvidia-kernel-source&lt;/tt&gt;, comme &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=420585&quot; hreflang=&quot;en&quot;&gt;420585&lt;/a&gt;). J'en ai profité pour corriger le bug &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=409204&quot; hreflang=&quot;en&quot;&gt;409204&lt;/a&gt;, qui ne nécessitait pas un gros effort.&lt;/p&gt;
&lt;p&gt;Je vous livre mon script qui permet de générer le tout. Pour le faire fonctionner, il faut copier les deux scripts &lt;tt&gt;prepare&lt;/tt&gt; et &lt;tt&gt;cmdline-nvidia&lt;/tt&gt; dans un répertoire où il peut être exécuté, installer les paquets &lt;tt&gt;nvidia-kernel-source&lt;/tt&gt;, &lt;tt&gt;nvidia-kernel-legacy-source&lt;/tt&gt; et tous les &lt;tt&gt;nvidia-kernel-headers&lt;/tt&gt; adéquats (par exemple &lt;tt&gt;linux-headers-2.6.21-1-686&lt;/tt&gt; si on ne veut que du 686) puis invoquer d'abord &lt;tt&gt;prepare&lt;/tt&gt; puis (après avoir mis dans le script les numéros convenables) &lt;tt&gt;cmdline-nvidia&lt;/tt&gt;, puis &lt;tt&gt;cmdline-nvidia -legacy&lt;/tt&gt;. Au bout d'un moment, &lt;tt&gt;/var/cache/apt/archives&lt;/tt&gt; contient les paquets tout chauds.&lt;/p&gt;
&lt;p&gt;Si le noyau doit être patché, il suffit de mettre dans &lt;tt&gt;/usr/src/nvidia-patches&lt;/tt&gt; le patch en question. Je vous livre le mien en même temps.&lt;/p&gt;
&lt;p&gt;La technique pour faire fonctionner le module même avec &lt;tt&gt;paravirt_ops&lt;/tt&gt; m'a été inspirée par &lt;a href=&quot;http://www.debianhelp.org/node/6880&quot; hreflang=&quot;en&quot;&gt;cet article&lt;/a&gt;. Il implique de reconstruire &lt;tt&gt;linux-kbuild&lt;/tt&gt; en enlevant les deux lignes suivantes (autour de la ligne 1200)&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;if (!mod-&amp;gt;gpl_compatible)&lt;br /&gt;    check_for_gpl_usage(exp-&amp;gt;export, basename, exp-&amp;gt;name);&lt;/pre&gt;
&lt;p&gt;Tous mes paquets recompilés sont disponibles sur le &lt;a href=&quot;http://linux-mirror.tenebreuse.org/debian/&quot; hreflang=&quot;fr&quot;&gt;miroir partiel que je gère&lt;/a&gt;. N'hésitez pas à recompiler si vous n'avez pas confiance&amp;nbsp;!&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:cbba3cfc66a073a2457f87efb0600f17">
	<title>Jean-Christophe Dubacq: Icedove 2.0, Lightning et Google Calendar</title>
	<link>http://jean-christophe.dubacq.fr/post/Icedove-20-Lightning-et-Google-Calendar</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://packages.qa.debian.org/i/icedove.html&quot; hreflang=&quot;en&quot;&gt;Icedove&lt;/a&gt; (connu aussi sous le nom de &lt;a href=&quot;http://www.mozilla-europe.org/fr/products/thunderbird/&quot; hreflang=&quot;fr&quot;&gt;Thunderbird&lt;/a&gt;), le lecteur de courrier de Mozilla, est disponible en version 2.0 sous Debian/sid.&lt;/p&gt;
&lt;p&gt;Je ne reviendrais pas sur la raison qui fait que Thunderbird a été renommé en Icedove sous Debian. La raison en est complexe, et &lt;a href=&quot;http://web.glandium.org/blog/?p=97&quot; hreflang=&quot;en&quot;&gt;d'autres&lt;/a&gt; &lt;a href=&quot;http://web.glandium.org/blog/?p=99&quot; hreflang=&quot;en&quot;&gt;l'ont traité&lt;/a&gt; bien mieux que moi. Toujours est-il qu'il y a des subtiles différences, entre autre l'utilisation de bibliothèques systèmes à la place de bibliothèques embarquées, qui font que tout n'est pas toujours compatible entre les deux navigateurs.&lt;/p&gt;
&lt;p&gt;L'un des intérêts (pour les utilisateurs de ce logiciel, dont je ne suis pas un utilisateur exclusif, mon lecteur usuel étant &lt;a href=&quot;http://www.mutt.org/&quot; hreflang=&quot;en&quot;&gt;mutt&lt;/a&gt;) est la possibilité d'y ajouter l'extension &lt;a href=&quot;https://addons.mozilla.org/fr/thunderbird/addon/2313&quot; hreflang=&quot;fr&quot;&gt;Lightning&lt;/a&gt;, qui permet de gérer des agendas/calendriers, et qui conjuguée à l'extension &lt;a href=&quot;https://addons.mozilla.org/fr/thunderbird/addon/4631&quot; hreflang=&quot;fr&quot;&gt;Provider for Google Calendar&lt;/a&gt; permet de gérer dans son lecteur de courrier les calendriers stockés par ailleurs dans &lt;a href=&quot;http://www.google.com/calendar/&quot;&gt;Google Calendar&lt;/a&gt;. Pour un nomade (au sens où je change souvent de machine comme moi, c'est un bonheur.&lt;/p&gt;    &lt;p&gt;Le principe qui fait que c'est intéressant, c'est que en vadrouille, je peux consulter et modifier depuis n'importe quel navigateur web mes calendriers. Je peux aussi le faire depuis mon portable ou mon poste au laboratoire dans l'interface de Icedove/Thunderbird, même sans connexion réseau.&lt;/p&gt;
&lt;p&gt;Malheureusement, pour des &lt;a href=&quot;http://web.glandium.org/blog/?p=97&quot; hreflang=&quot;en&quot;&gt;raisons assez complexes&lt;/a&gt;, Debian ne peut pas se permettre de distribuer une version «&amp;nbsp;officielle&amp;nbsp;» de Icedove. La version distribuée par Debian a pas mal d'optimisations (comme par exemple, d'utiliser les bibliothèques du système, avec les corrections apportées automatiquement par le système, au lieu d'attendre des mises à jour hasardeuses). En plus, elle est libre de droits. Bon, bref, rien de bien intéressant pour le moment.&lt;/p&gt;
&lt;p&gt;Là où ça se corse, c'est que de fait, l'extension Lightning téléchargeable un peu partout ne fonctionne pas avec icedove. Peu de messages d'erreur (sinon des horreurs dans la console). Bref, j'allais devoir recompiler.&lt;/p&gt;
&lt;p&gt;Méthode employée&amp;nbsp;: créer un &lt;tt&gt;chroot&lt;/tt&gt; avec un système minimale. Installer tout ce qu'il faut pour compiler &lt;tt&gt;icedove&lt;/tt&gt; et le lancer. L'arrêter, modifier les fichiers de configuration pour qu'il fabrique aussi l'extension &lt;tt&gt;Lightning&lt;/tt&gt;. Télécharger le source de &lt;tt&gt;Lightning 0.3.1&lt;/tt&gt;, le coller dans l'arbre de compilation au bon endroit. Attendre (deux heures, mais en faisant autre chose, quand même). Recommencer (pas tout, mais bon) parce qu'on a oublié un changement. Recommencer (même raison).&lt;/p&gt;
&lt;p&gt;Au bout d'un moment, on obtient un fichier &lt;tt&gt;lightning.xpi&lt;/tt&gt;. On ouvre Icedove, on clique sur &lt;tt&gt;Tools -&amp;gt; Add-ons&lt;/tt&gt; (la traduction en français n'est pas encore disponible, d'habitude c'est &lt;tt&gt;Outils -&amp;gt; Extensions&lt;/tt&gt;). On installe le fichier sus-mentionné... et on redémarre Icedove.&lt;/p&gt;
&lt;p&gt;Et là, alléluia&amp;nbsp;! &lt;tt&gt;*** cal_calendar_schema_version not found; initializing storage provider tables&lt;/tt&gt;, qu'il nous dit.&lt;/p&gt;
&lt;p&gt;C'est bon, ça marche, il ne reste plus qu'à suivre la procédure sur &lt;a href=&quot;http://bfish.xaedalus.net/?p=239&quot; hreflang=&quot;en&quot;&gt;cette page&lt;/a&gt; pour ajouter les calendriers déjà existants sur Google Calendar.&lt;/p&gt;
&lt;p&gt;En attachement de cet article, j'ai mis le fichier &lt;tt&gt;lightning.xpi&lt;/tt&gt; généré (à vos risques, je ne reprends pas la marchandise, etc.). Le &lt;a href=&quot;https://addons.mozilla.org/fr/thunderbird/addon/4631&quot; hreflang=&quot;fr&quot;&gt;Provider for Google Calendar&lt;/a&gt; marche très bien si on prend celui par défaut (il faut le télécharger et l'installer à part, comme sur mon Macintosh d'ailleurs, parce que sinon Iceweasel/Firefox croit que c'est une extension pour lui). Notez bien que je compile pour l'architecture &lt;tt&gt;i386&lt;/tt&gt;, pas pour &lt;tt&gt;amd64&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Au passage, merci à &lt;a href=&quot;http://www.ouaza.com/wordpress/&quot; hreflang=&quot;fr&quot;&gt;buxy&lt;/a&gt; de m'avoir ajouté à &lt;a href=&quot;http://planet-fr.debian.net/&quot; hreflang=&quot;fr&quot;&gt;Debian-Planet-Fr&lt;/a&gt;. Je dois les inonder un peu, mais comme je travaille sur des trucs qui ont rapport avec Debian en ce moment (en partie), c'est ce dont j'ai le plus à raconter...&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:2169f579ed4782fcb327062de6df65f1">
	<title>Jean-Christophe Dubacq: Utiliser Seahorse à la place de ssh-agent et gnupg-agent sous Debian</title>
	<link>http://jean-christophe.dubacq.fr/post/Utiliser-Seahorse-a-la-place-de-ssh-agent-et-gnupg-agent-sous-Debian</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.gnome.org/projects/seahorse/&quot; hreflang=&quot;en&quot;&gt;Seahorse&lt;/a&gt; est un programme qui remplit trois rôles&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gestionnaire de clés (à la fois clés ssh et clés de chiffrement GPG)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Agent de cache pour les clés ssh&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Agent de cache pour les clés gnupg-agent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si l'utilisation de Seahorse dans les deux premiers rôles ne pose aucun problème avec la distribution Debian (&lt;tt&gt;sid&lt;/tt&gt; du 22 mai 2007), il faut faire un peu d'efforts pour la 3e utilisation.&lt;/p&gt;    &lt;p&gt;En effet, plusieurs bugs actifs signalent une incompatibilité entre l'installation de &lt;tt&gt;gnupg-agent&lt;/tt&gt; et l'installation de &lt;tt&gt;seahorse&lt;/tt&gt;. Le symptôme est simple&amp;nbsp;: si les deux programment sont exécutés simultanément (avec en particulier &lt;tt&gt;seahorse&lt;/tt&gt; exécuté dans un environnement qui hérite de &lt;tt&gt;gnupg-agent&lt;/tt&gt;, comme c'est le cas par défaut), &lt;tt&gt;seahorse&lt;/tt&gt; meurt (bêtement).&lt;/p&gt;
&lt;p&gt;La première solution est relativement simple&amp;nbsp;: il s'agit de ne pas exécuter gnupg-agent alors qu'il est installé. Il suffit (pour ceux qui utilisent la session système, et pas un &lt;tt&gt;.xsession&lt;/tt&gt; personnalisé) d'éditer &lt;tt&gt;/etc/X11/Xsession.d/90gnupg-agent&lt;/tt&gt;, et de l'encadrer par un &lt;tt&gt;if [ &quot;0&quot; == &quot;1&quot; ]; then&lt;/tt&gt; au début et &lt;tt&gt;fi&lt;/tt&gt; à la fin.&lt;/p&gt;
&lt;p&gt;La deuxième solution, qui est en fait la plus naturelle, est de ne pas installer du tout &lt;tt&gt;gnupg-agent&lt;/tt&gt;. Bizarrement, c'est également le plus difficile si vous utilisez simultanément KDE et Gnome (ou si vous n'utilisez que l'un des deux), car un des paquets de KDE (à savoir &lt;tt&gt;kleopatra&lt;/tt&gt;) déclare &lt;tt&gt;gnupg-agent&lt;/tt&gt; comme dépendance.&lt;/p&gt;
&lt;p&gt;Il serait tout à fait légitime de déclarer &lt;tt&gt;gnupg-agent&lt;/tt&gt; si ce programme était vraiment nécessaire. Mais &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425533&quot; hreflang=&quot;en&quot;&gt;ce n'est pas le cas&lt;/a&gt;, puisque ce dont ce sert &lt;tt&gt;kleopatra&lt;/tt&gt; (l'interface générale de KDE pour divers choses, dont la gestion des clés de &lt;tt&gt;kmail&lt;/tt&gt;) c'est uniquement de la connexion en mode &lt;tt&gt;socket&lt;/tt&gt; avec gnupg-agent, pour laquelle &lt;tt&gt;seahorse&lt;/tt&gt; est parfaitement compatible. Et si ce n'est pas vrai (la compatibilité, j'entends), c'est un bug de &lt;tt&gt;seahorse&lt;/tt&gt; qui pourrait immédiatement être déplacé vers ce paquet (et non pas un bug de &lt;tt&gt;kleopatra&lt;/tt&gt;).&lt;/p&gt;
&lt;p&gt;J'ai essayé de convaincre les mainteneurs de KDE de rajouter une alternative à &lt;tt&gt;gnupg-agent&lt;/tt&gt; (il suffit de mettre dans le fichier de contrôle de &lt;tt&gt;kleopatra&lt;/tt&gt; &lt;tt&gt;gnupg-agent|seahorse&lt;/tt&gt; à la place de &lt;tt&gt;gnupg-agent&lt;/tt&gt; dans la ligne des dépendances), mais ça s'est révélé infructueux:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;pusling&amp;gt; then there is no bug ?&lt;br /&gt;&amp;lt;jcdubacq&amp;gt; yes there is ! I cannot install kleopatra without gnupg-agent&lt;br /&gt;&amp;lt;jcdubacq&amp;gt; that is the only bug&lt;br /&gt;&amp;lt;pusling&amp;gt; that's not a bug. that's a feature&lt;br /&gt;&amp;lt;jcdubacq&amp;gt; ?!&lt;br /&gt;&amp;lt;jcdubacq&amp;gt; gnupg-agent is not necessary !&lt;br /&gt;    I can prove it since I do not have it installed, and it works ?!&lt;br /&gt;&amp;lt;jcdubacq&amp;gt; All I ask is to acknowledge that seahorse is a good&lt;br /&gt;    enough replacement for gnupg-agent&lt;br /&gt;&amp;lt;pusling&amp;gt; I don't feel like I can acknowledge that.&lt;/pre&gt;
&lt;p&gt;Comme la coopération ne fonctionne pas, il est donc nécessaire d'utiliser des contournements (et une proposition d'inclure dans un fichier texte les contournements a été refusée aussi), d'où cet article. Il suffit de construire un paquet avec &lt;tt&gt;equivs&lt;/tt&gt;, suivant le modèle ici présent&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;machine# cd /tmp; cat &amp;gt; gnupg-agent-local.ctl &amp;lt;&amp;lt; EOF&lt;br /&gt;Package: gnupg-agent-local&lt;br /&gt;Provides: gnupg-agent&lt;br /&gt;Depends: seahorse&lt;br /&gt;Conflicts: gnupg-agent&lt;br /&gt;Description: Replaces gnupg-agent by seahorse&lt;br /&gt; A package which allows to use seahorse instead of gnupg-agent.&lt;br /&gt;EOF&lt;br /&gt;machine# equivs-build gnupg-agent-local.ctl&lt;br /&gt;machine# dpkg -i gnupg-agent-local_1.0_all.deb&lt;/pre&gt;
&lt;p&gt;C'est un peu dommage d'avoir à construire des rustines de ce genre, mais ça marche (c'est ce qu'on demande aux rustines). Ça m'évite d'avoir à fabrique à chaque nouvelle version de &lt;tt&gt;kleopatra&lt;/tt&gt; un paquet strictement équivalent ou la manipulation du fichier &lt;tt&gt;control&lt;/tt&gt; était faite (bien que ce ne soit pas si compliqué que ça, merci à &lt;tt&gt;dpkg-repack&lt;/tt&gt;).&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:10291220976aba30ff21d78ba46ea9ea">
	<title>Jean-Christophe Dubacq: Paramétrer son bip système avec pulseaudio (comme autrefois)</title>
	<link>http://jean-christophe.dubacq.fr/post/Parametrer-son-bip-systeme-avec-pulseaudio-comme-autrefois</link>
	<content:encoded>&lt;p&gt;J'ai enfin réussi à comprendre comment paramétrer complètement son bip système avec pulseaudio. Je ne dis pas que c'était compliqué, mais bon.&lt;/p&gt;    &lt;p&gt;Le son joué par défaut (une sorte de gloup) est référencé (sous Debian) dans &lt;tt&gt;/etc/pulse/default.pa&lt;/tt&gt; (près de la ligne 87) avec quelque chose qui ressemble à &lt;tt&gt;load-sample x11-bell /usr/share/sounds/gtk-events/activate.wav&lt;/tt&gt;. Le volume par défaut est simplement le volume du bip dans les propriétés X11. Hélas, ce n'est pas changeable dans les préférences de Gnome, mais un simple &lt;tt&gt;xset b 100&lt;/tt&gt; est suffisant à le mettre à 100% dans un programme lancé au démarrage de Gnome (Système -&amp;gt; Préférences -&amp;gt; Sessions). Si le volume par défaut de 50% est suffisant, autant ne pas le changer (je le trouve trop faible par rapport à ma musique).&lt;/p&gt;
&lt;p&gt;La première chose à faire est de supprimer le bip ordinaire&amp;nbsp;: en tant que root, ajoutez à &lt;tt&gt;/etc/modprobe.d/myblacklist&lt;/tt&gt; (ou bien créez le fichier avec) la ligne &lt;tt&gt;blacklist pcspkr&lt;/tt&gt;. Ensuite enlevez le module noyau &lt;tt&gt;pcspkr&lt;/tt&gt; avec &lt;tt&gt;rmmod pcspkr&lt;/tt&gt; (une fois suffit).&lt;/p&gt;
&lt;p&gt;Être root et éditer &lt;tt&gt;/etc/pulse/default.pa&lt;/tt&gt; n'est pas très pratique, mais &lt;tt&gt;pactl&lt;/tt&gt; donne à n'importe quel utilisateur le moyen de changer (y compris à la volée) son bip&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh&lt;br /&gt;# fichier sauvé comme ~/bin/setbeep et lancé au démarrage&lt;br /&gt;xset b 100&lt;br /&gt;SOUND=&quot;${1:-/data/macossounds/Quack.wav}&quot;&lt;br /&gt;if [ ! -f &quot;${SOUND}&quot; ]; then SOUND=&quot;/data/macossounds/${SOUND}.wav&quot;; fi&lt;br /&gt;if [ -f &quot;${SOUND}&quot; ]; then pactl upload-sample &quot;${SOUND}&quot; x11-bell; fi&lt;/pre&gt;
&lt;p&gt;Je peux maintenant enfin réentendre de vieux tubes récupérés sur un vieux Macintosh, comme &quot;Quack&quot; ou &quot;Boing&quot;... ou encore faire jouer une chanson de trois minutes à chaque appui malencontreux sur une mauvaise touche&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;PS: Pour des raisons légales évidentes, je ne peux pas mettre ici ces bips fabuleux, mais je ne doute pas qu'un esprit un peu curieux et affûté soit capable de les retrouver sur Internet...&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:da25d10fa93ae38dc845e3c4ff791f7d">
	<title>Jean-Christophe Dubacq: Gérer plusieurs sites en https derrière une seule adresse IP</title>
	<link>http://jean-christophe.dubacq.fr/post/Gerer-plusieurs-sites-en-https-derriere-une-seule-adresse-IP</link>
	<content:encoded>&lt;p&gt;Avec le développement des lignes ADSL à haut débit, il est de plus en plus facile de gérer chez soi son serveur. Même si ce n'est pour distribuer que peu de choses, comme des statistiques de surveillance ou autre, il y a des choses qu'on n'a pas envie de confier à un fournisseur externe (par exemple, les photographies personnelles, un agenda privé, etc.). Si les problèmes de débits ne sont pas un obstacle, il y a parfois des difficultés techniques liées purement aux protocoles utilisés.&lt;/p&gt;
&lt;p&gt;C'est le cas qui se présente lorsque l'on veut faire un hébergement sécurisé (&lt;tt&gt;https&lt;/tt&gt;) par exemple dès qu'on installe un service qui va demander un mot de passe. Par construction, il est difficile de faire cohabiter plusieurs services derrière un &lt;tt&gt;https&lt;/tt&gt; avec un nom de domaine différent pour chacun.&lt;/p&gt;
&lt;p&gt;Je vais expliquer comment j'arrive à générer des certificats auto-signés qui permettent d'identifier plusieurs noms de domaines comme étant valides pour une seule machine.&lt;/p&gt;    &lt;p&gt;En effet, le protocole &lt;tt&gt;https&lt;/tt&gt; est le même que le protocole &lt;tt&gt;http&lt;/tt&gt; à une nuance près&amp;nbsp;: avant même de communiquer entre eux sur le service demandé, les ordinateurs commencent par vérifier que le fournisseur du service est bien celui qu'il prétend. Une fois que cette vérification a été faite, les deux ordinateurs décident de crypter toutes leurs communications relatives au service (par exemple, des échanges de mot de passe) de façon à ce qu'un ordinateur au milieu de la communication ne puisse pas écouter et enregistrer les communications pour avoir accès à ces données. Il y a toujours des ordinateurs au milieu de vos communications, par exemple ceux de votre fournisseur d'accès (qui ne sont pas immunisés à des attaques hostiles de la part de pirates).&lt;/p&gt;
&lt;p&gt;La technique est simple. Lorsqu'on parle à un ordinateur pour lui demander un service (par exemple&amp;nbsp;: https://galerie.dubacq.fr pourrait être le nom de domaine auquel répond mon ordinateur pour présenter une galerie), celui-ci commence par présenter un &lt;em&gt;certificat X509&lt;/em&gt; garantissant qu'il est &lt;tt&gt;galerie.dubacq.fr&lt;/tt&gt;. Je vais expliquer seulement le cas où c'est lui-même qui garantit cette exactitude (un certificat auto-signé). L'autre méthode est de faire signer le certificat par une autorité directement connue de votre navigateur web et la procédure est assez proche (mais dépend d'une société tierce, donc je ne vais pas m'étendre&amp;nbsp;: c'est leur rôle).&lt;/p&gt;
&lt;p&gt;La difficulté commence au moment où un ordinateur veut servir à la fois &lt;tt&gt;galerie.dubacq.fr&lt;/tt&gt; et &lt;tt&gt;jean-christophe.dubacq.fr&lt;/tt&gt; (ce blog) de façon sécurisée. En effet, comme aucune requête spécifique ne vient dire quel est le service demandé avant la vérification du certificat, on ne peut pas envoyer un certificat distinct selon que le service demandé est l'un ou l'autre. On est obligé de présenter un certificat qui présente deux noms (ou plus) avant de pouvoir communiquer pour savoir lequel des services est réellement demandé. Or la spécification X509 ne propose par défaut qu'un seul nom. Heureusement, une extension permet d'en mettre plusieurs. Il suffit de le savoir, et de comprendre la &lt;a href=&quot;http://www.openssl.org/docs/apps/req.html&quot; hreflang=&quot;en&quot;&gt;documentation&lt;/a&gt; (à la fois complète et complexe) qui va avec.&lt;/p&gt;
&lt;p&gt;Voilà le script que j'ai fait qui me fabrique un certificat auto-signé tout propre pour un ou plusieurs domaines. Mon script garde tous les morceaux intermédiaires. J'espère qu'il sera utile à quelqu'un. Évidemment, un certificat auto-signé a ses limites (il repose sur le fait que l'utilisateur accepte une première fois le certificat à un moment où il est sûr qu'il est valide). Mais il n'y a pas à l'heure actuelle de certificat gratuit accessible au particulier et reconnu par défaut par les navigateurs web.&lt;/p&gt;
&lt;p&gt;Le script est livré avec un petit fichier auxiliaire indispensable pour son bon fonctionnement, il ne faut pas hésiter à modifier les valeurs par défaut qui sont dedans. Il n'y a pas besoin d'être super-utilisateur (administrateur) pour exécuter ce script, mais il y a probablement besoin de l'être pour utiliser les fichiers produits.&lt;/p&gt;
&lt;p&gt;Il est à noter qu'il y a en fait plusieurs fichiers produits: les trois plus utiles sont la clé non-protégée (extension &lt;tt&gt;key&lt;/tt&gt;, à garder précieusement), le certificat proprement dit (extension &lt;tt&gt;crt&lt;/tt&gt; qu'on doit rendre le plus public possible) et le certificat combiné (extension &lt;tt&gt;pem&lt;/tt&gt;) qui regroupe les deux précédents (certaines applications de serveurs préfèrent ce format à la donnée des deux autres).&lt;/p&gt;
&lt;p&gt;Je recommande que tous les serveurs en &lt;tt&gt;https&lt;/tt&gt; aient une page web visible et trouvable qui donnent ces certificats à télécharger. Cela permet aux utilisateurs de les télécharger directement depuis un endroit sûr pour les utiliser plus tard dans un environnement hostile.&lt;/p&gt;
&lt;p&gt;Au cas où votre fournisseur ne vous donne pas de page web avec le certificat, il est toujours possible de le récupérer (autant pour &lt;tt&gt;https&lt;/tt&gt; que pour d'autres protocoles comme &lt;tt&gt;imaps&lt;/tt&gt; ou &lt;tt&gt;pops&lt;/tt&gt; qui servent à relever le courrier électronique). La commande suivante (sous linux ou autre système avec &lt;tt&gt;openssl&lt;/tt&gt; installé le fait&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SITE=&quot;www.example.org&quot;; PORT=993
openssl s_client -connect $SITE:$PORT -showcerts  $SITE.crt &amp;lt;/dev/null | sed -ne '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p' &amp;gt; $SITE.crt
&lt;/pre&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="urn:md5:5c9fe10e13109ce589202c30a5eff269">
	<title>Jean-Christophe Dubacq: Etch Release Party à Paris</title>
	<link>http://jean-christophe.dubacq.fr/post/Etch-Release-Party-a-Paris</link>
	<content:encoded>&lt;p&gt;Après la stabilisation de la nouvelle version de Debian (intitulée etch), la sortie d'une mise à jour pour la version stable précédente (sarge), et l'élection en tant que &lt;em&gt;Debian Project Leader&lt;/em&gt; de Samuel Hocevar, tout ceci le week-end du 8 avril, il a été fait une &lt;em&gt;release party&lt;/em&gt; à Paris le 11 avril 2007. Avec un rendez-vous dans le bar &lt;em&gt;Murphy's bar&lt;/em&gt; (tout à fait correct, mais au sous-sol trop petit), nous sommes allés finir la soirée au &lt;em&gt;Pizza Pino&lt;/em&gt; voisin...&lt;/p&gt;    &lt;p&gt;Voici les quelques photos (à peine récupérables) tirées de cette soirée :&lt;/p&gt;
&lt;div class=&quot;photo&quot;&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/debian-release-0.jpg&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/.debian-release-0_m.jpg&quot; alt=&quot;Le sous-sol du Murphy's bar, très encombré&quot; title=&quot;Le sous-sol du Murphy's bar, très encombré&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Il faut bien comprendre que les toilettes étaient encore plus au fond. On s'est fait détester au son de « La prochaine fois, réservez ! ».&lt;/p&gt;
&lt;div class=&quot;photo&quot;&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/debian-release-1.jpg&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/.debian-release-1_m.jpg&quot; alt=&quot;Samuel Hocevar (à droite)&quot; title=&quot;Samuel Hocevar (à droite)&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;xaiki et sam discutaient dans l'escalier.&lt;/p&gt;
&lt;div class=&quot;photo&quot;&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/debian-release-2.jpg&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/.debian-release-2_m.jpg&quot; alt=&quot;En attendant les pizzas...&quot; title=&quot;En attendant les pizzas...&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Un échange de clés improvisé a fait sortir les ordinateurs en attendant de manger (xaiki, pterjan et lool).&lt;/p&gt;
&lt;div class=&quot;photo&quot;&gt;&lt;a href=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/debian-release-3.jpg&quot;&gt;&lt;img src=&quot;http://jean-christophe.dubacq.fr/public/photos/debian/.debian-release-3_m.jpg&quot; alt=&quot;Tout le monde mange et discute&quot; title=&quot;Tout le monde mange et discute&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;On a fini par pouvoir manger des pizzas.&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-28T16:54:04+00:00</dc:date>
</item>
<item rdf:about="http://gcolpart.evolix.net/blog21/variables-denvironnement-et-services/">
	<title>Gr&amp;#233;gory Colpart: Variables d’environnement et services</title>
	<link>http://gcolpart.evolix.net/blog21/variables-denvironnement-et-services/</link>
	<content:encoded>&lt;p&gt;Plusieurs services (Apache, Tomcat, etc.) dépendent de variables d&amp;#8217;environnement, notamment des variables LC_*/LANG*. Il faut donc prendre garde à la façon dont on (re)lance un service. Par exemple, sous Debian, un &lt;em&gt;apache(2)ctl start&lt;/em&gt; ne revient pas au même qu&amp;#8217;utiliser un &amp;#8220;wrapper&amp;#8221; comme &lt;em&gt;/etc/init.d/apache(2)&lt;/em&gt;. Mais il ne suffit pas d&amp;#8217;utiliser systématiquement les scripts init.d : toujours sous Debian, &lt;em&gt;/etc/init.d/tomcat5.5&lt;/em&gt; peut dépendre de variables d&amp;#8217;environnement. Concrètement, relancer un service depuis un shell avec un environnement particulier peut donc changer son comportement (dates incorrectes, problème de charset, etc.). D&amp;#8217;ailleurs, au passage, sous Debian, il est conseillé d&amp;#8217;utiliser systématiquement &lt;em&gt;/etc/init.d/apache2&lt;/em&gt; (et non &lt;em&gt;apache2ctl&lt;/em&gt;) pour Apache car celui-ci réinitialise l&amp;#8217;environnement, et une astuce pour Tomcat est d&amp;#8217;exporter les variables voulues (notamment celles concernant la locale) dans le fichier &lt;em&gt;/etc/default/tomcat5.5&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;En règle générale, la relance de services sur un serveur en production s&amp;#8217;effectue par sudo et/ou SSH. Pour éviter les erreurs d&amp;#8217;inattention, il est donc préférable ne pas conserver les variables LC_*/LANG*. Avec sudo, il est ainsi recommandé d&amp;#8217;utiliser &lt;em&gt;env_reset&lt;/em&gt; pour des raisons de sécurité, mais &lt;em&gt;env_reset&lt;/em&gt; conserve ces variables sans qu&amp;#8217;il soit possible a priori de les supprimer avec &lt;em&gt;env_delete&lt;/em&gt; (voir bug Debian &lt;a href=&quot;http://bugs.debian.org/392321&quot;&gt;#392321&lt;/a&gt;). Au niveau de SSH, on peut agir plus efficacement, comme éviter que ces variables soient envoyées par le client SSH en retirant la directive &lt;em&gt;SendEnv LANG LC_*&lt;/em&gt; dans le fichier &lt;em&gt;/etc/ssh/sshd_config&lt;/em&gt;. On peut également le faire au niveau du serveur en évitant la directive &lt;em&gt;AcceptEnv LANG LC_*&lt;/em&gt; dans le fichier &lt;em&gt;/etc/ssh/sshd_config&lt;/em&gt;. Bien sûr, comme toujours toutes ces &amp;#8220;astuces&amp;#8221; ne doivent pas être appliquées sans précaution ; le principal est de garder en tête que certains services peuvent dépendre des variables d&amp;#8217;environnement et d&amp;#8217;éviter de les (re)lancer depuis un environnement modifié.&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-24T22:58:59+00:00</dc:date>
</item>
<item rdf:about="http://www.sukria.net/fr/archives/2008/02/24/raid5-cest-bon/">
	<title>Alexis Sukrieh: RAID5 c’est bon, et apt-mirror c’est excellent</title>
	<link>http://www.sukria.net/fr/archives/2008/02/24/raid5-cest-bon/</link>
	<content:encoded>&lt;p&gt;Transformer des heures du dimanche aprĂ¨s-midi en giga-octets, c&amp;#8217;est possible :&lt;/p&gt;
&lt;pre&gt;
/dev/md0              294G  113G  167G  41% /data
&lt;/pre&gt;
&lt;pre&gt;
# mdadm --add /dev/md0 /dev/sdd1
# mdadm --grow /dev/md0 --raid-devices=4
&lt;/pre&gt;
&lt;p&gt;Quelques heures plus tard &amp;#8230;&lt;/p&gt;
&lt;pre&gt;
# fsck.ext3 /dev/md0
# resize2fs /dev/md0
&lt;/pre&gt;
&lt;p&gt;Et, oh bonheur, y a tout plein de giga en plus, yeehee :&lt;/p&gt;
&lt;pre&gt;
/dev/md0              441G  113G  310G  27% /data
&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Mise Ă  jour du 26. fĂŠv.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Pour utiliser tout cet espace je me suis dit qu&amp;#8217;avoir un miroir Debian Ă  la maison Ă§a peut ĂŞtre super agrĂŠable (8mo/s pour l&amp;#8217;apt-get upgrade du matin c&amp;#8217;est bon) et puis aussi parceque Ă§a va surement me servir pour mes occupations de dĂŠveloppeur Debian. J&amp;#8217;ai toujours eu envie de faire des trucs dans le scope de l&amp;#8217;archive et Ă§a sera l&amp;#8217;occasion (genre recompiler tous les paquets Perl avec Perl 5.10 par exemple).&lt;/p&gt;
&lt;p&gt;Bref, tout Ă§a pour dire, que si vous voulez monter un miroir debian, y a une vraie perle pour tout faire pour vous : apt-mirror. C&amp;#8217;est ĂŠcrit en Perl, Ă§a fait des threads, Ă§a se configure en deux temps trois mouvement et Ă§a marche pour ainsi dire tout seul. Bref, c&amp;#8217;est gĂŠnial.&lt;/p&gt;
&lt;p&gt;Miroir, miroir, dis-moi que ton archive est la plus belle !&lt;/p&gt;</content:encoded>
	<dc:date>2008-02-24T19:03:48+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/01/24/gforge-janvier-2008.html">
	<title>Roland Mas: GForge, janvier 2008</title>
	<link>http://roland.entierement.nu/blog/2008/01/24/gforge-janvier-2008.html</link>
	<content:encoded>&lt;p&gt;Voici quelques nouvelles de GForge en français, pour changer, parce
qu'il y a visiblement un fort contingent d'utilisateurs francophones
de GForge.  Si le blabla ne vous intéresse pas, sautez quelques
paragraphes, y'a une annonce qui peut vous intéresser.&lt;/p&gt;

&lt;p&gt;Je m'en doutais un peu à vrai dire : je savais déjà qu'il y avait des
instances de GForge en usage dans un certain nombre d'entreprises et
d'administrations françaises.  Je déplorais d'ailleurs que ces usages
soient privés, voire secrets...  On n'en entendait parler que par la
bande, au détour d'une conversation.  Et chacun avait ses bricolages
locaux, et ses améliorations personnelles, dont personne ne profitait.&lt;/p&gt;

&lt;p&gt;Heureusement, les différents utilisateurs francophones de GForge (de
forges en général) ont fini par plus ou moins se retrouver, et des
discussions ont commencé sur la &lt;a href=&quot;https://picolibre.int-evry.fr/wws/info/forges&quot;&gt;liste Picolibre
Forges&lt;/a&gt;.  On s'aperçoit
donc que de nombreux utilisateurs existent, qu'ils ont souvent des
besoins communs, et que certains ont même déjà des solutions à
apporter à certains de ces besoins.  Il se pourrait bien que ces
utilisateurs (et ces développeurs) se mettent à communiquer et à
relancer une vraie dynamique de communauté autour de GForge (pour
l'instant, il y a une poignée de développeurs, et quelques
utilisateurs qui ne communiquent pas, donc j'hésite à appeler ça une
communauté).  Quelques-uns de ces utilisateurs et moi-même nous sommes
rencontrés à la conférence Qualipso la semaine dernière, normalement
nous devrions nous retrouver au salon Solutions Linux la semaine
prochaine, et une réunion spéciale forges est même organisée après ça.
Donc, ça prend forme.&lt;/p&gt;

&lt;p&gt;Concrètement, ce que j'espère principalement est que les modifications
de chacun seront partagées, de sorte qu'elles puissent être intégrées
au cœur de GForge, et portées sur une version plus récente (puisque
l'immense majorité des utilisateurs actuels sont basés sur une version
4.5.x patchée).  Le « tronc » Subversion de GForge devrait donc
intégrer, dans un futur que j'espère pas trop lointain, les évolutions
suivantes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Intégration du bug-tracker Mantis : au moins deux (et
vraisemblablement trois) entités ont déjà réalisé cette intégration,
et j'essaie de récupérer les patches pour que tout le monde en
profite.  Pourquoi tout le monde se focalise sur l'intégration d'un
nouveau tracker au lieu d'exploiter la flexibilité de celui de
GForge pour l'étendre, ça me dépasse, mais je ne suis pas là pour
juger.  De même, je trouve vraiment dommage que ce développement ait
été fait deux ou trois fois de manière indépendante et sans
concertation.  Vous avez dit gaspillage de temps humain ?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ajout d'un système d'intégration continue (on me dit « Maven »).  Là
encore, normalement ça a déjà été fait, il ne devrait plus rester
qu'à publier les patches et les porter vers l'état actuel du code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;C'est peut-être lié à l'item précédent (je manque de détails), mais
on devrait aussi voir apparaître une intégration dans GForge d'un
système de tests automatisés.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...et je ne doute pas que d'autres utilisateurs, qui ont eux aussi
ajouté leurs propres fonctionnalités sans rien dire à personne, vont
aussi se révéler au grand jour et collaborer avec la communauté
(n'est-ce pas ?).  Peut-être même que des gens vont remettre au goût
du jour l'empaquetage RPM, abandonné depuis plusieurs années.&lt;/p&gt;

&lt;p&gt;Histoire de ne pas être en reste, je fais ici l'annonce publique
suivante : le plugin Mediawiki pour GForge est enfin publié.  Ce
plugin fait suite à une intégration faite « avec des contraintes de
temps assez serrées » (comprendre « un peu à l'arrache ») pour un
client, et à une autre intégration faite plus proprement pour un autre
client.  Le dépôt SVN de &lt;code&gt;gforge.org&lt;/code&gt; contient donc présentement le
code qui va bien, et la prochaine version des paquets Debian qui
seront publiés fournira un nouveau paquet binaire appelé
&lt;code&gt;gforge-plugin-mediawiki&lt;/code&gt;.  Je dispose également d'une version du
plugin pour GForge 4.5.x, mais comme Mediawiki nécessite PHP 5, il
faut également extraire de ma branche client la conversion
PHP 4 → PHP 5 de GForge 4.5 (et en retirer les fonctionnalités
réellement spécifiques au client), ce qui explique que ce n'est pas
encore publié sur mon dépôt APT (ni déployé sur Alioth).  J'y
travaille, promis.&lt;/p&gt;</content:encoded>
	<dc:date>2008-01-24T17:10:16+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html">
	<title>Roland Mas: CPOLD, la poudre verte du suivi de versions</title>
	<link>http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html</link>
	<content:encoded>&lt;p&gt;Je m'aperçois que quand je cause d'outils de suivi de version, il
m'arrive de mentionner, en plus des standards (CVS, Subversion, Bazaar
et les autres), le vénérable CPOLD.  Et que souvent, mes
interlocuteurs ne connaissent pas CPOLD.  Et effectivement, ce n'est
guère documenté dans la littérature et le web multimédia mondial.  Je
m'en vais donc vous présenter un peu cette formidable méthodologie de
suivi de versions.&lt;/p&gt;

&lt;p&gt;Pourquoi formidable ?  Parce qu'elle ne souffre d'aucun des problèmes
récurrents des autres outils :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pas de format de fichier complexe et susceptible de corruption ;&lt;/li&gt;
&lt;li&gt;pas de conflits ;&lt;/li&gt;
&lt;li&gt;aucun besoin d'un serveur dédié (on peut tout mettre ensemble, prod
et dev confondues) ;&lt;/li&gt;
&lt;li&gt;aucune limitation sur la gestion des branches ;&lt;/li&gt;
&lt;li&gt;une rapidité insurpassable ;&lt;/li&gt;
&lt;li&gt;une simplicité de mise en œuvre et d'apprentissage enfantine ;&lt;/li&gt;
&lt;li&gt;pas de modèle de développement imposé (centralisé, distribué, en
quinconce, en hélice, toutes les variantes sont possibles) ;&lt;/li&gt;
&lt;li&gt;des sauvegardes facilitées ;&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour résumer, CPOLD, c'est la poudre verte du suivi de versions.  Mais
alors, comment ça marche ?  Très simplement.  Tout répertoire
contenant des fichiers est &lt;em&gt;déjà&lt;/em&gt; une archive CPOLD, pas besoin
d'initialiser quoi que ce soit.  Pas besoin non plus de « prendre la
main » sur un fichier avant de l'éditer.  Une seule commande à
retenir, celle pour créer une nouvelle version de ce fichier :&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;cp fichier fichier.old
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bien entendu, le &lt;code&gt;.old&lt;/code&gt; peut être remplacé par n'importe quel suffixe
ou combinaison de suffixes, il suffit de définir une convention de
nommage et de s'y tenir.  On pourra ainsi avoir &lt;code&gt;fichier.old.test.2&lt;/code&gt;,
la troisième révision archivée de &lt;code&gt;fichier&lt;/code&gt; dans une branche « test ».
Ou, lorsque les contraintes sont moins marquées ou moins fortement
ressenties par l'équipe de développement, on pourra être moins strict.
Un « dépôt » CPOLD pourra alors se présenter sous la forme suivante :&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;roland@mirexpress ~/cpold-demo &amp;#036; ls
fichier                    fichier.OK             fichier.old.old
fichier.1999-08-16         fichier.old            fichier.old.test-roland
fichier.2003-10-27.valide  fichier.OLD            fichier.prod
fichier.a-verifier         fichier.old.marchepas
roland@mirexpress ~/cpold-demo &amp;#036;
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Alors évidemment, ce système présente quelques inconvénients, dus
principalement à sa simplicité.  Mais il reste tout-à-fait utilisable
dans des environnements de production, j'en veux pour preuve le nombre
d'entreprises qui ne jurent que par lui et n'en changeraient pour rien
au monde.  CPOLD, le premier outil de suivi de versions du monde, est
sans doute aujourd'hui encore parmi les plus utilisés.  Il a su
s'adapter depuis les copies de bande magnétique à bande magnétique, a
vécu son heure de gloire à l'époque des disquettes, et continue
vaillamment son aventure (avec un potentiel décuplé) à l'heure des
mémoires Flash et de l'Internet.&lt;/p&gt;

&lt;p&gt;Bon, ceci dit, personnellement je préfère Bazaar, et je ne mentionne
pas CPOLD parmi les services que je propose habituellement à mes
clients (si ce n'est pour leur proposer une migration &lt;em&gt;depuis&lt;/em&gt; CPOLD
&lt;em&gt;vers&lt;/em&gt; autre chose).&lt;/p&gt;</content:encoded>
	<dc:date>2008-01-22T19:58:48+00:00</dc:date>
</item>
<item rdf:about="http://www.ouaza.com/wp/2008/01/20/jeu-concours-cloture/">
	<title>Rapha&amp;#235;l Hertzog: Jeu concours, c’est fini !</title>
	<link>http://www.ouaza.com/wp/2008/01/20/jeu-concours-cloture/</link>
	<content:encoded>&lt;p&gt;Bon, ça y est le jeu concours pour gagner les dix exemplaires du &lt;a href=&quot;http://www.ouaza.com/livre/admin-debian/&quot;&gt;Cahier de l&amp;#8217;Admin Debian&lt;/a&gt; est clos. Les gagnants ont été prévenus par courrier électronique et les autres peuvent voir qui a gagné sur la &lt;a href=&quot;http://www.ouaza.com/livre/admin-debian/jeu.html&quot;&gt;page du jeu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Parmi les 10 gagnants, ceux qui ont été sélectionnés par les auteurs sont : &lt;a href=&quot;http://linuxetleschoses.tuxfamily.org/Documentation/debianetch2007.html&quot;&gt;Linux et les choses&lt;/a&gt;, &lt;a href=&quot;http://sunwukong.rx3.net/dotclear/index.php/?2007/11/30/64-les-cahiers-de-l-admin-debian-gnu-linux-nouvelle-dition-dans-les-bacs&quot;&gt;le blog de Sun WuKong&lt;/a&gt; et &lt;a href=&quot;http://beranger.org/index.php?page=diary&amp;#038;2007/11/29/12/11/31-le-cahier-de-l-admin-du-debian-e&quot;&gt;Planète Béranger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Félicitations aux heureux gagnants ! Pour les autres, merci quand même d&amp;#8217;avoir participé et j&amp;#8217;espère pouvoir rencontrer certains d&amp;#8217;entre vous au salon Solutions Linux où je serai présent (sur le stand Debian évidemment).&lt;/p&gt;
&lt;p&gt;Vous aurez aussi remarqué que je ne poste plus très régulièrement sur mon blog, ce n&amp;#8217;est pas faute de manquer d&amp;#8217;idées, mais je passe tellement de temps à travailler sur dpkg qu&amp;#8217;il ne m&amp;#8217;en reste plus pour rédiger des articles. Ceci dit mes priorités évoluent (par cycle de quelques mois) et un jour ce blog redeviendra un peu plus actif. &lt;img src=&quot;http://www.ouaza.com/wp/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;/p&gt;
&lt;span class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://www.ouaza.com/wp/?p=152&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_152&quot; class=&quot;akst_share_link&quot;&gt;Partagez cet article / Share This&lt;/a&gt;
&lt;/span&gt;</content:encoded>
	<dc:date>2008-01-20T21:24:22+00:00</dc:date>
</item>
<item rdf:about="http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-1/">
	<title>Gr&amp;#233;gory Colpart: Autre exemple de migration Sarge-&gt;Etch [1]</title>
	<link>http://gcolpart.evolix.net/blog21/autre-exemple-de-migration-sarge-etch-1/</link>
	<content:encoded>&lt;p&gt;Je n&amp;#8217;ai pas oublié mon idée de &lt;a href=&quot;http://gcolpart.evolix.net/blog21/un-exemple-de-migration-debian-sarge-etch-0/&quot;&gt;bloguer sur des migrations Sarge-&amp;gt;Etch qui le méritent&lt;/a&gt;. Voici donc un deuxième volet avec un petit serveur d&amp;#8217;entreprise comprenant les services suivants : OpenLDAP (annuaire, authentification), PostgreSQL, NFS, messagerie (Postfix, Courier-IMAP, Amavisd-new, ClamAV, Bogofilter, DCC, Razor, SpamAssassin, Whitelister, Postgrey, Sympa), Apache/PHP (eGroupWare, webmail Horde, wwsympa, logiciels/sites sur mesure) ainsi qu&amp;#8217;un certain nombre de logiciels/scripts sur mesure. J&amp;#8217;ai donc profité des jours autour de Noël (période idéale pour les migrations de serveurs d&amp;#8217;entreprise) pour m&amp;#8217;attaquer à cette tâche.&lt;/p&gt;
&lt;p&gt;Tout d&amp;#8217;abord, je souligne que cette migration est particulière car j&amp;#8217;en profite pour basculer sur du RAID (software) et il s&amp;#8217;agit donc de réinstaller un système de base et de gérer les migrations &amp;#8220;à la main&amp;#8221; (tout en jetant un coup d&amp;#8217;oeil sur certains maintainer scripts). Au passage, quelle horreur d&amp;#8217;ajouter des disques supplémentaires dans un serveur D3LL format tour quand ça n&amp;#8217;a pas vraiment été prévu : une seule paire de glissières, uniquement deux emplacements 3&amp;#8243;5, alors que techniquement on pourrait mettre une bonne douzaine de disques&amp;#8230; Bref, une fois les soucis matériel gérés (ah oui, la nappe SCSI et la terminaison prévues étaient foireuses), la nuit est bien avancée et je peux couper les services et me lancer dans une réinstallation de base puis re-brancher l&amp;#8217;ancien disque et gérer service par service la migration. Voici la liste des points critiques et problèmes rencontrés :&lt;/p&gt;
&lt;p&gt;- Au niveau du noyau, aucun problème en vue car je reste avec le même (&lt;a href=&quot;http://www.evolix.fr/linux/compilation.html&quot;&gt;un noyau personnalisé avec notamment le patch grsecurity&lt;/a&gt;). Néanmoins, un petit soucis avec la bibliothèque liblzo notamment utile à lynx (&amp;#8230;utile à mutt pour voir les messages HTML et diverses pièces jointes) :&lt;/p&gt;
&lt;pre&gt;$ lynx
lynx: error while loading shared libraries: liblzo.so.1:
cannot enable executable stack as shared object requires: Permission denied&lt;/pre&gt;
&lt;p&gt;La solution est de &amp;#8220;mettre un coup de pioche&amp;#8221; dans la bibliothèque :&lt;/p&gt;
&lt;pre&gt;aptitude install prelink &amp;amp;&amp;amp; execstack -c /usr/lib/liblzo.so.1.0.0&lt;/pre&gt;
&lt;p&gt;- OpenLDAP&lt;br /&gt;
Il faut bien gérer le passage du service slapd qui n&amp;#8217;est plus lancé par root mais par un utilisateur openldap. Lors de la migration, il faut donc bien ajuster tous les droits (schémas LDAP, ré-injection des données avec &lt;em&gt;slapadd&lt;/em&gt;, etc.) sinon slapd vous &amp;#8220;segfault&amp;#8221; dans la tête ; et ajuster le pidfile dans le slapd.conf (le mettre dans un répertoire /var/run/slapd/ où l&amp;#8217;utilisateur openldap aura les droits pour créer le pidfile, et non plus simplement /var/run/).&lt;/p&gt;
&lt;p&gt;- PostgreSQL&lt;br /&gt;
J&amp;#8217;ai utilisé le paquet pour avoir une version 7.4 et minimiser les impacts potentiels lors de la migration car Sarge utilisait déjà une version 7.4. Un pg_dumpall dans le chroot de la machine arrêtée et un psql plus tard, aucun soucis à relever. Il a ensuite suffi de migrer les fichiers de configuration pg_*.&lt;/p&gt;
&lt;p&gt;- Bind&lt;br /&gt;
Rien à sigaler de particulier, à part installer le paquet bind9, lancer mon fameux script &lt;a href=&quot;http://www.gcolpart.com/hacks/chroot-bind.sh&quot;&gt;chroot-bind.sh&lt;/a&gt;, et transférer l&amp;#8217;ancienne configuration (named.conf, rndc.conf, etc.).&lt;/p&gt;
&lt;p&gt;- Messagerie (Postfix, Courier-IMAP, Amavisd-new, ClamAV, SpamAssassin, Whitelister, Postgrey, Sympa)&lt;br /&gt;
Un gros morceau mais tout se passe bien dans l&amp;#8217;ensemble pour ces logiciels extrêmement utilisés. Pas de soucis pour Postfix en reprenant l&amp;#8217;ancien fichier main.cf. Pour info, j&amp;#8217;utilise souvent &lt;a href=&quot;http://volatile.debian.org/&quot;&gt;debian-volatile&lt;/a&gt; (donc SpamAssassin, ClamAV et Postgrey en sont issus) et un &lt;a href=&quot;http://gcolpart.evolix.net/debian/whitelister/&quot;&gt;Whitelister patché pour vérifier aussi les reverse DNS&lt;/a&gt;. À noter que pour pas mal de logiciels, je suis reparti de la configuration de Etch et j&amp;#8217;ai importé mes modifications plutôt que de repartir de ma configuration pour Sarge (&lt;a href=&quot;http://bugs.debian.org/430028&quot;&gt;pour amavisd-new, il n&amp;#8217;y a pas trop le choix de toute façon&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;-  Sympa&lt;br /&gt;
Là, ce fut un gros morceau de la migration, parce qu&amp;#8217;il y a beaucoup de changements de la version 4 à la version 5. J&amp;#8217;ai donc importé les configurations des listes et Sympa s&amp;#8217;est débrouillé pour avaler tout ça et injecter les admins des listes dans PostgreSQL. Pour les archives, il faut bien penser à re-générer toutes les archives (par wwsympa) pour avoir le nouveau format car l&amp;#8217;ancien s&amp;#8217;affiche très mal (plein de variables sensées ne pas s&amp;#8217;afficher apparaissent). Enfin, pour injecter les utilisateurs dans les tables user_table et subscriber_table (pour les listes qui n&amp;#8217;utilisent pas LDAP ;), j&amp;#8217;ai du ajouter la colonne robot_subscriber à la main avant d&amp;#8217;injecter le tout. Mais après avoir bien ajusté la configuration et redémarré plusieurs dizaines de fois Sympa, tout marche ! Il ne reste plus qu&amp;#8217;à activer fcgi, ajouter un &lt;a href=&quot;http://bugs.debian.org/408097&quot;&gt;petit patch trivial&lt;/a&gt;, refaire les couleurs (car l&amp;#8217;interface web change complètement et les *_color deviennent des color_n) et tout roule ! &lt;a href=&quot;http://listes.evolix.net/&quot;&gt;Résultat ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;- Apache/PHP&lt;br /&gt;
Afin de minimiser les impacts, j&amp;#8217;ai choisi de rester en PHP4 (la migration en PHP5 se fera par la suite, une chose à la fois). Pour la migration des VirtualHosts (une bonne vingtaine), tout se passe plutôt bien à part le changement des directives pour l&amp;#8217;authentification via LDAP &lt;a href=&quot;http://gcolpart.evolix.net/blog21/un-exemple-de-migration-debian-sarge-etch-0/&quot;&gt;déjà indiqué précédemment&lt;/a&gt;. Passons aux webapps. Pour eGroupWare, c&amp;#8217;est vite vu car c&amp;#8217;est géré indépendamment de Debian (il n&amp;#8217;y a d&amp;#8217;ailleurs pas de version d&amp;#8217;eGroupWare pour Etch). De la même façon, pour les sites/logiciels développés sur mesure, rien à signaler. Reste le webmail Horde où les dernières versions apportent un ergonomie bien confortable (options intégrées dans la sidebar, dossiers virtuels, etc.) et une amélioration notable des performances IMHO. Je n&amp;#8217;ai pas utilisé la version d&amp;#8217;Etch mais directement la version de sid qui corrige un &lt;a href=&quot;http://bugs.debian.org/421826&quot;&gt;bug d&amp;#8217;affichage pour Opera et IE7&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dans l&amp;#8217;ensemble, ce fut long, mais au final pas d&amp;#8217;accrochage majeur. Les premiers retours des utilisateurs semblent concluants : tout marche aussi bien (voire mieux puisqu&amp;#8217;il y a de nouvelles fonctionnalités/optimisations).&lt;/p&gt;</content:encoded>
	<dc:date>2007-12-29T01:11:23+00:00</dc:date>
</item>
<item rdf:about="http://roland.entierement.nu/blog/2007/12/23/ipv6-pourquoi.html">
	<title>Roland Mas: IPv6, pourquoi</title>
	<link>http://roland.entierement.nu/blog/2007/12/23/ipv6-pourquoi.html</link>
	<content:encoded>&lt;p&gt;Vous êtes déjà probablement au courant vu que tout le monde en a déjà
parlé, mais je vais quand même faire mon billet dessus : Free propose,
depuis quelques jours, de l'IPv6 (presque) natif à ses abonnés
dégroupés.  Plein de sites ont repris l'annonce, je vais pas la
copicoller une énième fois, mais je vais apporter quelques détails.&lt;/p&gt;

&lt;p&gt;D'abord, comment on le fait marcher ?  Dans le cas de monsieur
tout-le-monde, il suffit de cliquer sur l'interface de gestion de
l'abonnement et de rebooter la Freebox.  Si un ordinateur classique
est branché dessus, il se verra attribuer une adresse IPv6 (et même
plusieurs) en plus de l'adresse IPv4 habituelle.  Pouf, un monde
nouveau s'ouvre à lui.&lt;/p&gt;

&lt;p&gt;Mais, la question que tout le monde pose, à quoi ça sert ?
Principalement à affecter à chacun des ordinateurs branchés sur la
Freebox une adresse distincte.  Beaucoup pensent encore qu'il s'agit
d'un gadget qui ne sert à rien sinon à quelques geeks, et que ça n'a
aucun intérêt pour madame Michu.  Et du coup, ils dénigrent à tout va,
et refusent d'en entendre parler.  C'est bien dommage, pour plusieurs
raisons.&lt;/p&gt;

&lt;p&gt;D'abord, parce que ne l'oublions pas, ce sont les geeks qui font
marcher le monde, pas les marchands de lessive ou les faiseurs
d'opinion.  Pas de geeks dans les années 70, pas d'informatique dans
les années 80.  Pas de geeks dans les années 90, pas d'Internet dans
les années 2000.  Donc quand les geeks disent que certaines choses
sont importantes, il est souvent utile de les écouter.  Expliquons
donc en quoi IPv6 c'est important.&lt;/p&gt;

&lt;p&gt;Pour Cécile Berteau, internaute dite moyenne, ça va changer quoi ?  Ça
dépend.  Si elle vit seule et ne se sert de son unique ordinateur que
comme d'un Minitel à images, probablement pas grand-chose.  Mais
sinon, ça peut changer pas mal de trucs.  Premièrement, en IPv6 chaque
ordinateur a une adresse différente, même « vu de l'extérieur ».  Donc
son ordinateur, celui de son fils et celui de son mari auront chacun
leur adresse.  Les connexions réseau initiées par ces trois
ordinateurs seront donc facilement identifiables, et ne nécessiteront
plus de phase de traduction d'adresse comme à l'heure actuelle (où,
vus de l'extérieur, les trois ordinateurs semblent avoir la même
adresse).  Cette traduction d'adresse réseau ne pose pas trop de
problèmes tant qu'on parle de connexions sortantes, puisque c'est la
« box » qui s'en occupe et qu'elle sait faire ce qui va bien ; pour
les connexions entrantes, c'est nettement plus complexe à mettre en
place, puisqu'il faut configurer manuellement la box, et lui dire vers
quel ordinateur envoyer les connexions entrantes, en fo