January 23, 2015

hackergotchi for Debian France

Debian France

Présentation du projet Debian aux Expériences Numériques

Expériences Numériques

Les EPN de la Maison pour Tous Salle des Rancy en collaboration avec l'Aadn, Aldil, Ubunteros de Lyon, Illyse organisent le 31 janvier 2015 : les Expériences Numeriques.

Ce rendez-vous est une journée de découverte, d’initiation et de rencontres autour des pratiques du numérique.

À cette occasion une conférence aura lieu à 16h pour présenter le projet Debian. Pendant cette journée une install party sera organisée où les personnes qui le désirent pourront installer notre distribution favorite.

Télécharger le programme.

Carte Openstreet Map. Voir aussi le plan d'accès officiel pour plus de détails.

logo Maison pour Tous Salle des Rancy

23 January, 2015 03:12PM

January 14, 2015

hackergotchi for Charles Plessy

Charles Plessy

nodejs-legacy

apt install nodejs-legacy, sinon npm install ne fonctionnera pas.

14 January, 2015 08:42AM

January 13, 2015

hackergotchi for Raphaël Hertzog

Raphaël Hertzog

Mes activités libres en décembre 2014

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci à eux !) mais aussi pour la communauté Debian au sens large parce que cela peut donner des idées aux nouveaux venus et que c’est également un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent à cœur.

Debian LTS

Ce mois-ci ce sont 20 heures de travail sur Debian LTS qui ont été subventionnées. Voici le résumé des tâches qui m’ont occupé :

  • Tri de vulnérabilités CVE : j’ai poussé 47 commits vers le suiveur de sécurité. Ce qui m’a amené à soumettre deux demandes d’évolution le concernant : n°772927 et n°772961;
  • J’ai publié la DLA-106-1 qui avait été préparée par Osamu Aoki;
  • J’ai publié la DLA-111-1, corrigeant une vulnéréabilité CVE affectant cpio;
  • J’ai publié les DLA DLA-113-1 et DLA-114-1 affectant bsd-mailx et heirloom-mailx, corrigeant respectivement une vulnérabilité pour le premier, et deux pour le second;
  • J’ai publié la DLA-120-1 affectant xorg-server. Cette mise à jour seule m’a demandé plus de 6 heures pour rétroporter tous les patchs, corrigeant un ensemble conséquent de 12 vulnérabilités CVE.

Hors heures subventionnées, mais toujours en relation avec Debian LTS : j’ai demandé à Linux Weekly News de couvrir Debian LTS dans leur section sécurité, ce qui est maintenant chose faite. Vous pouvez consulter les DLA sur la page de sécurité habituelle, tandis qu’une page dédiée suit ce flux en particulier : http://lwn.net/Alerts/Debian-LTS/.

J’ai modifié la page wiki de Debian LTS afin de disposer d’une sous-page dédiée au financement. Cela permet d’éviter l’affichage d’un lien direct vers l’offre de Freexian sur la page principale du projet (ce qui a surpris quelques personnes). Cela permet également d’expliquer plus avant le contexte et de lister d’autres sociétés/personnes physiques de la même manière, le cas échéant (dans la mesure où il n’y a aucune relation d’exclusivité entre Debian et Freexian ici !).

j’ai également répondu à plusieurs questions de Nguyen Cong (un nouveau contributeur, employé par Toshiba avec leur permission explicite de travailler sur Debian LTS pendant ses heures travaillées ! \o/), via IRC, sur ask.debian.net (encore) et sur la liste de diffusion ! Il est bon de voir le projet LTS trouver un écho au-delà de la communauté des membres actuels du projet Debian.

Distro Tracker

Je souhaite prioriser de nouveau Distro Tracker, a minima afin de compléter la transition de l’ancien suiveur de paquets vers ce nouveau service… le mois dernier fut à cet égard un petit peu mieux que novembre, mais pas de beaucoup.

J’ai passé en revue un patch du rapport de bogue n°771604 (concernant l’affichage des descriptions longues), puis j’ai fusionné un autre patch du rapport n°757443 (corrigeant un mauvais balisage rendant la page inutilisable avec Konqueror). J’ai enfin corrigé le bogue n°760382, affectant les paquets passant par l’état « NEW » et ne le perdant plus par la suite.

Contributions en lien avec Kali

Je ne décris pas ici tout mon travail sur Kali, mais seulement quelques réalisations qui ont été contribuées en amont (ou dans Debian).

En premier lieu, je me suis assuré que nous pouvions compiler l’ISO de Kali avec le live-build 4.x de Jessie. Le résultat en a été de multiples patchs fusionnés dans le projet Debian live (1, 2, 3 et 4).

J’ai également soumis un patch concernant une régression dans la manière de traiter les dépendances dans les listes de paquets. Elle a été corrigée différemment et mon patch a été rejeté. J’ai également créé le rapport de bogue n°772651 pour consigner un problème dans la façon qu’a live-build de décider de la variante du paquet live-config à installer.

Kali a modifié le paquet sysvinit afin de pouvoir désactiver les services par défaut, et j’ai investigué comment porter cette fonctionnalité dans le monde systemd. Il s’est avéré que systemd présente nativement une telle fonctionnalité, nommée Preset files. Ce n’est malheureusement pas utilisable dans Debian car systemctl preset n’est pas appelé lors de l’installation du paquet. J’ai créé le rapport de bogue n°772555 pour demander la modification correspondante (dans Stretch, il est trop tard pour Jessie :-()

Saltstack

J’utilise salt afin d’automatiser certaines tâches d’administration dans Kali, au travail ou à la maison. J’ai découvert récemment que le projet essayait de rassembler des « Salt formulas », qui sont autant d’instructions prêtes à être utilisées, pour autant de services que possible.

J’ai commencé à les utiliser pour des services simples, et j’ai rapidement ressenti le besoin d’étendre « salt-formula », le jeu de formules utilisé pour configurer salt à partir de salt. J’ai soumis 5 demandes d’intégration (les n°73 et n°74 pour configurer salt en mode standalone, la n°75 pour activer les dépôts du paquet amont, la n°76 pour télécharger et activer automatiquement les formules salt désirées, et la n°77 corrigeant quelques bogues) qui ont toutes été intégrées en moins de 24h (ce qui est du genre à vous motiver pour contribuer de nouveau dans le futur !).

J’ai également soumis une correction de bogue pour samba-formula et un rapport de bogue pour salt lui-même (le n°19180).

Je dispose d’ailleurs d’états salt pour mettre en place schroot et sbuild. Je vais essayer de les empaqueter proprement en tant que formules dans le futur…

Travaux divers

Gouvernance de la liste de diffusion. Au sein de Debian, nous nous plaignons souvent des « méta-discussions » qui sont tenues sur les listes de diffusion (c’est-à-dire des discussions qui ont pour sujet la manière dont nous discutons ensemble). Néanmoins il est nécessaire que nous ayons ce type de discussions de temps à temps. J’ai ainsi suggéré d’héberger ces discussions sur une nouvelle liste de diffusion et, afin que cette liste soit effectivement mise en place, nos règles requièrent que d’autres personnes manifestent leurs intérêts pour celle-ci. Cette idée a reçu un certain soutien lorsque nous en avons discuté sur debian-private, je l’ai donc relancé sur debian-project tout en soumettant officiellement la demande via le rapport de bogue n°772645. Je n’ai malheureusement obtenu qu’un soutien jusqu’à maintenant. Aussi, si vous êtes intéressé par l’idée, je vous encourage à vous manifester…

Parrainage. J’ai parrainé un autre plugin de Galette ce mois-ci : galette-plugin-fullcard. Merci à François-Régis Vuillemin pour son travail.

Publican. A la suite d’un de mes rapports de bogue concernant Publican, et avec l’aide de l’auteur amont, nous avons identifié le problème et j’ai soumis un patch.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in December 2014 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

13 January, 2015 08:00AM by Raphaël Hertzog

January 08, 2015

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Objets connectés : attention aux services

Ces derniers temps, on parle beaucoup d'objets connectés, qui sont des accessoires divers — montre, cardiofréquencemètre, podomètre, vélo d'appartement, balance… — intégrant un ordinateur, connecté à votre réseau local ou à Internet afin de transmettre les informations qu'il collecte.

Attention donc à ne pas oublier une chose : si ces objets dépendent d'un service tiers, mis en place par le fabricant, ils ne dureront pas. Le jour où ce service prendra fin — car il prendra fin, ce n'est pas une hypothèse mais une certitude, à plus ou moins long terme — votre balance ou votre montre à plusieurs centaines d'euros ne fonctionnera plus, ou en tout cas pas comme ce qu'on vous a vendu.

08 January, 2015 12:02PM by Tanguy

December 25, 2014

Florent Gallaire

La CNIL dans MISC, la fuite des données sur Internet

Un petit peu au dernier moment, je voudrais signaler un excellent article dans le n°76 de novembre-décembre de MISC, le magazine français de référence concernant la sécurité informatique.

« Analyse d’une inscription en ligne : comment vos données fuitent sur Internet » a été écrit par Stéphane Labarthe et Benjamin Vialle, le principal développeur de MarkUs, un logiciel libre d’annotation de code et de travaux.

Tous deux sont contrôleurs au sein de la  CNIL, la Commission nationale de l’informatique et des libertés, et les exemples qu’ils donnent s’inspirent donc de situations bien réelles auxquelles ils ont été confrontés au cours de leur travail.

L’article a l’avantage d’être très didactique, donnant les outils et les méthodes pour inspecter soi-même le parcours des données personnelles et des cookies que l’on est bien obligé de transmettre sur Internet, par exemple quand l’on veut commander des cadeaux (en passant Joyeux Noël à tous !).

Et si à cette occasion l’on détecte des fuites de données inappropriées, on peut saisir la CNIL qui s’est vu attribuer des prérogatives de contrôle en ligne par la loi Hamon du 17 mars 2014, dont l’article 105 a modifié l’article 44-III de la loi Informatique et libertés.

 

 

flattr this!

25 December, 2014 08:02PM by fgallaire

December 23, 2014

hackergotchi for Vincent Bernat

Vincent Bernat

Eudyptula Challenge : démarrage rapide d'un noyau Linux

Le challenge Eudyptula est une série d’exercices de programmation pour le noyau Linux. Il commence avec le très basique module « Hello world » puis progresse en complexité jusqu’à faire pousser des modifications dans l’arbre du noyau Linux.

Une des premières tâches de ce challenge est de compiler puis démarrer son propre noyau. eudyptula-boot est un script autonome permettant de démarrer une image noyau jusqu’à obtenir un shell. Il est livré avec les fonctionnalités suivantes :

  • Il permet de booter quasiment n’importe quel noyau Linux, du noyau fourni par votre distribution favorite jusqu’au noyau personnalisé1 pour travailler sur une fonctionnalité quelconque.

  • Il utilise le système de fichiers de l’hôte comme racine pour le système invité. Aucune image disque n’est donc nécessaire. Ces dernières prennent beaucoup de place, doivent être maintenues à jour, se retrouvent encombrées au fil du temps et les outils dont vous avez besoin ne sont jamais installés. Pour éviter toute modification accidentelle, le système de fichiers est par défaut monté en lecture seule. S’ils sont disponibles, OverlayFS ou aufs sont utilisés pour ajouter une couche accessible en écriture. Il est de plus possible d’utiliser n’importe quel répertoire comme racine.

  • Le répertoire utilisateur est également accessible. Il est ainsi simple de partager des scripts et des programmes avec le système hôte.

  • Il démarre un système minimal avec le strict nécessaire2 pour démarrer un shell dans de bonnes conditions. Le système est opérationnel en moins de cinq secondes.

Dans la vidéo ci-dessous, eudyptula-boot est utilisé pour démarrer le noyau de l’hôte et exécuter quelques commandes :

Dans la vidéo suivante, nous démarrons un noyau personnalisé contenant un appel système supplémentaire. Il s’agit de la tâche n°15 du challenge Eudyptula. Un programme de test permet de vérifier le bon fonctionnement de l’appel système. Vers la fin, la vidéo contient également une rapide démonstration de gdb.

Bien que ce hack permette également de lancer des conteneurs3 avec une isolation accrue, les performances de 9p sont malheureusement peu convaincantes pour un tel usage.


  1. Il est toutefois nécessaire d’activer le support de 9p virtio. Il suffit pour cela d’utiliser make kvmconfig

  2. Seul udev est démarré. 

  3. Un point de départ pour une telle utilisation est de combiner les options --root, --force et --exec. Ajoutez également --readwrite pour conserver les modifications. 

23 December, 2014 11:46AM by Vincent Bernat

December 22, 2014

Carl Chenet

Le Journal Du Pirate, nouveau média propulsé par un Logiciel Libre qui trouve sa place

Suivez-moi aussi sur Identi.ca  ou Twitter  ou Diaspora*diaspora-banner

Un peu plus d’une semaine après le lancement en grande pompe du Journal du Pirate, site d’infos participatif francophone inspiré de son grand frère américain Hacker News, nous revenons sur le parcours de ce nouveau média propulsé par un Logiciel Libre.

jdp

Quelques statistiques intéressantes à nos yeux ont été publiées de nouveau dans un journal sur LinuxFr.org, afin de faire un retour quelques jours après ledit lancement.

Pourquoi un Logiciel Libre pour propulser ce site ?

La question peut paraître saugrenue aux aficionados du Logiciel libre qui vont lire ce billet, mais d’autres tentent régulièrement de lancer ce type de site en faisant un moteur à leur sauce, en général privateur. Ça n’est pas l’idée derrière le JdP. Nous voulions un moteur en accord avec notre vision du logiciel avec une interface suffisamment peu envahissante pour apparaître épurée d’un contenu superflu.

github-logo

Keep it simple, stupid

Le principe de ce site est simple, très simple. Une fois identifié ce qu’on veut faire exactement, cela peut paraître plus facile de tout re-coder. Mais c’est à mon sens une erreur dans la plupart des cas. De très bon prédécesseurs existent et ont subi tous les plâtres possibles et inimaginables. Rendons leur justice en utilisant ce qu’ils ont eu tant de mal à mettre au point et contribuons en retour. Pour le Journal du Pirate nous avons opté pour le moteur du site web Lobste.rs , sous licence BSD, qui a une approche mettant en avant la transparence des actions et des utilisateurs du site, attitude qui nous plaît beaucoup.

lobsters

Le site d’actualité Lobste.rs

Sur cette pierre je bâtirai…

Lorsque les fondations sont solides, on construit mieux et du durable. Au lieu de nous consacrer au moteur, l’équipe du Journal du Pirate se consacre au contenu et cherche à proposer la meilleure qualité d’articles possible ainsi qu’à coller à l’actualité. En espérant que cela vous plaise :)

Un média pour et par la communauté francophone

Il nous tient à cœur de présenter ce que produit la communauté francophone. Notre approche est complémentaire de LinuxFR ou des sites traditionnels proposant un vrai contenu éditorial original.

linuxfr_noel

LinuxFR.org, principal site du Logiciel Libre francophone

Nous optons pour présenter un maximum d’infos différentes à nos contributeurs qui effectuent un tri par leurs votes pour permettre aux meilleurs liens d’apparaître en première page. Ce modèle est éprouvé et marche plutôt bien.

Au-delà du Logiciel Libre, nous nous intéressons également aux publications scientifiques francophones et aux tissus des startups françaises, grandes utilisatrices du Logiciel Libre et proposant souvent des défis techniques intéressants.

Rejoignez-nous en réclament votre invitation pour aider à ce choix vous aussi, afin de mettre en avant vos logiciels libres, vos publications scientifiques ou vos startups !

Et vous ? Que pensez-vous de ce nouveau média francophone ? N’hésitez pas à réagir dans les commentaires ou à y demander votre invitation (en laissant votre e-mail dans le champ dédié).


22 December, 2014 11:00PM by Carl Chenet

hackergotchi for Debian France

Debian France

Dons Debian France

Dons Debian France

En cette fin d'année, nous tenons à rappeler que l'association Debian France est reconnue d'intérêt général. Ainsi, les donations à destination de l'association peuvent être déduites des impôts.

Une fois la donation réalisée, pour obtenir un reçu, il suffit d'envoyer un mail au trésorier - <tresorier@france.debian.net> en indiquant votre adresse.

Formulaire de donation

22 December, 2014 04:47PM

December 16, 2014

Carl Chenet

Suivre les stats de son site web en Ruby On Rails avec Piwik

Suivez-moi aussi sur Identi.ca  ou Twitter  ou Diaspora*diaspora-banner

Après avoir lancé Le Journal du Pirate, le Hacker News francophone, j’avais évidemment besoin de suivre la fréquentation du site. J’avais utilisé AWStats sur un précédent projet et je voulais tenter d’utiliser un logiciel de comception un peu plus récente cette fois-ci.

awstats-logo

Piwik semblait convenir parfaitement. Multi-sites, Interface graphique moderne, des bons échos dans la communauté, je me suis donc naturellement dirigé vers cette solution. Piwik se présente comme une application web avec une base de données MySQL derrière.

piwik_app

Pour les gens intéressés, le site officiel propose une démo très sympa permettant de voir tout de suite les points forts de Piwik.

piwik

Le Journal du Pirate est quant à lui une application Ruby On Rails. Or Piwik requiert l’ajout d’un javascript sur les pages que l’on veut surveiller. Ce qui peut s’avérer délicat à réaliser lorsque que l’on maîtrise mal RoR.

La documentation officielle suivante explique très bien la marche à suivre. Ajouter une gem Ruby à son Gemfile, relancer bundle puis quelques éléments de configuration dans le fichier config/piwik.yml et le tout a marché directement.

rails

Je suis très content du résultat. Niveau interface graphique c’est très agréable et Piwik propose un très grand nombre de métriques associées aux différents sites web supervisés. J’en ai profité pour lui faire surveiller ce blog et le site web de MyTux, ma société d’infogérance de serveurs Debian.

Et vous ? Quel est votre ressenti après avoir utilisé quelques temps Piwik ? Des difficultés à le mettre en place avec RoR ? N’hésitez pas à réagir dans les commentaires de ce billet.


16 December, 2014 11:00PM by Carl Chenet

December 14, 2014

hackergotchi for Raphaël Hertzog

Raphaël Hertzog

Mes activités libres en novembre 2014

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci à eux !) mais aussi pour la communauté Debian au sens large parce que cela peut donner des idées aux nouveaux venus et que c’est également un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent à cœur.

Debian LTS

ce sont dix-huit de heures de travail sur Debian LTS qui ont été financées ce mois-ci (14 heures allouées par Freexian et 4 heures non consommées du mois dernier). Voici ce qui a été accompli :

  • Tri de vulnérabilités CVE: j’ai poussé 19 commits vers le suiveur de sécurité. J’ai également essayé d’encourager certains mainteneurs à fournir des mises à jour pour des paquets qui ne sont pas utilisés par les sponsors actuels de Debian LTS, et qui ne sont donc pas sur notre liste de priorités;
  • DLA 87 : mise à jour de dbus corrigeant 3 vulnérabilités CVE;
  • DLA 93: mise à jour de libgcrypt11 corrigeant 1 vulnérabilité CVE;
  • DLA 96: mise à jour de sécurité de openjdk-6 corrigeant 21 vulnérabilités CVE;
  • J’ai travaillé à la préparation d’une mise à jour de sécurité pour linux. Elle n’est pas encore publiée.

Mettre à jour le paquet source de linux nous a pris une bonne moitié du temps alloué. Nous avons opté pour une mise à jour du noyau vers la version amont 2.6.32.64. J’ai intégré les patchs amont et j’ai identifié environ 130 patchs que nous devions désactiver (car ils étaient déjà intégrés par l’amont). J’ai ensuite mis à jour notre patch openvz pour l’appliquer par-dessus le nouveau noyau. Cela a demandé un peu de travail manuel pour résoudre les conflits et il y a même des cas pour lesquels je ne suis pas sûr d’avoir pris la bonne décision. Je n’ai pas pu trouver un arbre git de l’amont openvz pour cette version de noyau afin de contre-vérifier.

A la place, j’ai demandé à Ben Hutchings de revoir mon patch. Il m’a répondu qu’il ne s’était pas porté volontaire pour travailler sur la version LTS, mais qu’il était disposé à y contribuer de manière rémunérée. En conséquence et en tant que coordinateur de l’offre Freexian, je lui ai proposé de rejoindre l’équipe des contributeurs LTS rémunérés, afin de s’occuper du noyau. Ce qu’il a accepté.

Ainsi, nous serons capable si tout va bien d’en finir avec cet envoi au cours de la première semaine de décembre. Nous n’avons pas eu d’uploads du noyau dans Squeeze depuis juillet dernier, aussi savoir que nous avons maintenant quelqu’un de capable pour traiter ça en priorité est une bonne chose.

Distro Tracker

Aucun nouveau développement ce mois-ci de ce côté. J’ai passé du temps à la place à importer les nouvelles de l’ancien historique de sorte à ce que lorsque vous recherchez d’anciens paquets vous obteniez des résultats plutôt qu’une erreur 404. Vous pouvez par exemple essayer avec python2.1.

Une autre chose faite ce mois-ci fut de marquer certains bogues avec le tag « newcomer », nouvellement créé. Ce sont des bogues faciles à traiter, et qui sont donc parfaits pour les nouveaux contributeurs souhaitant se lancer : la liste est ici.

A vous de jouer maintenant ! ;-)

DEP-14: Structure recommandée pour les dépôts Git utilisés pour le packaging Debian

J’ai ébauché la version initiale d’un document appelé Structure recommandée pour les dépôts Git utilisés pour le packaging Debian, et l’ai soumis pour discussion sur debian-devel.

La discussion fut intéressante et constructive (oui, c’est encore possible au sein de Debian !). J’ai une pile d’améliorations dans ma copie locale et j’ai besoin de prendre encore en compte quelques retours avant de soumettre un brouillon mis à jour. Ce n’est pas une révolution mais c’est un grand pas vers une standardisation des conventions de nommage pour les tags et les branches.

Systemd, le comité technique et nos listes de diffusion

En bon vétéran, je prête beaucoup d’attention à la gouvernance de Debian et il est ennuyeux de voir à quel point le débat autour de systemd fait resurgir certains de nos anciens démons, et combien il tend l’atmosphère sur nos listes de diffusion.

Nous pouvons être en désaccord sur beaucoup de choses, mais nous devons respecter les opinions de chacun et sommes ici pour travailler ensemble à des solutions utilisables par tout le monde. J’ai donc écrit aux personnes ayant franchi la ligne jaune pour les inviter à mieux se comporter. Et je suis content de voir les responsables des listes nous supporter en bannissant les personnes lorsque c’est justifié. Je crois que nous devons continuer dans cette direction et j’ai partagé une idée (sur un fil de discussion Debian privé qui n’aurait jamais du exister, tout comme le trafic sur cette liste) que je formaliserai et partagerai sur debian-project@l.d.o le moment venu (c’est chose faite ici).

Au même moment, nous avons eu une autre discussion concernant la gouvernance de Debian, avec l’idée qu’il fallait imposer une rotation des membres du comité technique. J’ai été heureux de voir que nous voterons bientôt à ce sujet. Je pense que c’est une bonne chose d’un point de vue général, même si trois de ses membres viennent juste d’en démissionner.

Travaux divers

J’ai parrainé un upload de galette et de trois de ses extensions. J’ai passé en revue jitsi-videobridge et jitsi-meet sur mentors.debian.net.

J’ai également créé quelques rapports de bogues :

  • n°768256 : au sujet d’icônes vim disproportionnées dans les menus contextuels GNOME;
  • n°768540 : cdebootstrap : échoue à lancer d’anciennes versions lorsque dpkg ne supporte pas data.tar.xz;
  • n°770011 : lynx -dump lors d’une mauvaise conversion de &#x2026.

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in November 2014 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

14 December, 2014 08:31PM by Raphaël Hertzog

December 10, 2014

Olivier Berger (perso)

Réparé les hauts-parleurs d'un portable HP dv6000 en échangeant deux nappes internes

Les hauts-parleurs internes du portable HP de mes parents, un dv6000, ne marchaient plus : plus de son sans devoir mettre des enceintes ou un casque :-(

En fait, il semble que ce soit un problème classique, qui semble causé par des nappes de connexion internes deffectueuses.

La réparation n'est pas trop compliquée, si on achète une nappe de remplacement, mais on peut aussi trouver un contournement.

J'ai réussi à échanger les deux nappes qui connectent la carte mère à la partie qui contient les boutons et les hauts-parleurs, au dessus du clavier, et même si maintenant, les boutons de cette rangée supérieure ne marchent plus, ce n'est pas trop grave, car le son est revenu.

Pour voir une vidéo (en anglais) qui explique comment faire, voir : Hp Pavilion Dv6000 power button and speaker fix!

Content d'avoir récupéré le son :-)

10 December, 2014 10:10PM by obergix

December 09, 2014

hackergotchi for Debian France

Debian France

Debian France au Capitole du Libre

Debian France au Capitole du Libre

Le samedi 15 novembre, l'association Debian France a tenu un stand au Capitole du Libre, l'événement du Libre à Toulouse. Ceci a permis de créer un certain nombre de contacts prometteurs, et de confirmer que Debian est une référence reconnue pour ses valeurs. Nous remercions l'association Toulibre pour son accueil et son très bel événement!

09 December, 2014 04:06PM

December 08, 2014

Carl Chenet

Site comme Hacker News en français : Le Journal Du Pirate

Suivez-moi aussi sur Identi.ca  ou Twitter  ou Diaspora*diaspora-banner

Avant tout l’adresse du site : Le Journal Du Pirate https://infos.mytux.fr

Un site web comme Hacker News mais francophone propulsé par un Logiciel Libre, je trouve que ça manquait à la communauté francophone.

ycombinator-logo

C’est maintenant chose faite avec un site dérivé du moteur de Lobste.rs. Les sources sont disponibles sur ce GitHub.

github-logo

L’inscription fonctionne par cooptation pour limiter les articles indésirables.

Un petit commentaire avec votre e-mail dans le champ des e-mails et je vous fais parvenir une invitation, qui vous permet à votre tour d’inviter autant de personnes que vous le souhaitez.

Vous pouvez aussi réclamer une invitation depuis le site. L’un des utilisateurs courants vous enverra alors une invitation.

Et tous les commentaires sont les bienvenues bien sûr ;)


08 December, 2014 11:00PM by Carl Chenet

November 26, 2014

hackergotchi for Charles Plessy

Charles Plessy

Lecture de debian-private via SSH

Je me suis récemment aperçu que l'on peut consulter les archives de debian-private via SSH. Je trouve que c'est un bon compromis entre l'abonnement et l'ignorance. Voici par exemple la commande pour Novembre.

ssh -t master.debian.org mutt -f /home/debian/archive/debian-private/debian-private.201411

26 November, 2014 10:35AM

November 17, 2014

hackergotchi for Raphaël Hertzog

Raphaël Hertzog

Mes activités libres en octobre 2014

Mon rapport mensuel couvre une grande partie de mes contributions au logiciel libre. Je l’écris pour mes donateurs (merci à eux !) mais aussi pour la communauté Debian au sens large parce que cela peut donner des idées aux nouveaux venus et que c’est également un des moyens les plus effectifs de trouver des volontaires pour travailler sur les projets qui me tiennent à cœur.

Travail d’empaquetage

Avec l’approche du gel effectif de Jessie, je me suis occupé d’empaqueter quelques nouvelles versions amont que je voulais voir incluses. J’ai commencé avec zim 0.62, ayant fait l’impasse sur la version 0.61 pour cause de régressions assez ennuyeuses. Et puisque j’avais deux rapports de bogues à transmettre, j’ai saisi cette opportunité pour discuter avec l’auteur amont et lui demander s’il avait des correctifs importants à inclure pour Jessie. Ce qui eut pour résultat l’envoi d’une autre mise à jour avec trois commits attentivement choisis depuis le dépôt Bazaar amont. J’ai également parrainé un rétroportage dans les dépôts wheezy-backports de cette nouvelle version.

J’ai poussé deux nouvelles versions correctives de Publican (4.2.3 et 4.2.6), mais j’ai du y inclure une solution de contournement pour un bogue que j’ai reporté plus tôt concernant docbook-xml (n°763598 : le catalogue XML ne permet pas à libxml2/xmllint d’identifier une copie locale de certains fichiers), et cela paraissait peu probable que cela soit correctement corrigé pour Jessie.

Last but not least, j’ai poussé la première révision mineure de Django 1.7 – également dénommée version 1.7.1 – vers unstable, et j’ai demandé aux responsables de la publication de s’assurer de son passage vers testing avant le gel effectif de Jessie. C’est important dans la mesure où plus nous sommes proches de l’amont, plus il est facile d’appliquer les correctifs de sécurité durant tout le cycle de vie de Jessie (qui je l’espère sera de 5 ans, grâce à Debian LTS !). J’ai également publié un rétroportage de python-django 1.7 vers les dépôts wheezy-backports.

J’ai enfin parrainé la publication d’un correctif de galette (0.7.8+dfsg-1), résolvant un bogue critique pour la publication, de sorte à ce que galette retourne dans testing (il en avait été enlevé du fait de ce bogue précisément).

Debian LTS

Vous pouvez prendre connaissance du travail rémunéré que j’ai effectué pour Debian LTS via le bulletin dédié. J’ai également consacré un certain temps à échanger avec les consultants Debian au sujet de nouvelles sociétés que nous pourrions contacter. De nouveaux sponsors sont attendus grâce à cette démarche, mais étant donné le très grand nombre de personnes que cela représente, j’en attendais plus. J’ai profité de cette opportunité pour rapporter toutes les entrées erronées (comme par exemple les rejets d’emails ou les URL mortes) au mainteneur de ladite page Web.

Distro Tracker

Seuls 30 commits ont été effectués ce mois-ci, avec presque aucune contribution extérieure. Je suis un petit peu peiné de cet état de fait dans la mesure où contribuer à ce projet n’est pas très compliqué, et que nous disposons d’une pelleté de bogues faciles à traiter pour vous mettre le pied à l’étrier.

Ceci étant dit je suis toujours content du travail accompli. La plupart des modifications ont été effectuées pour Kali, mais elles seront profitables à toutes les distributions dérivées : il est maintenant possible d’ajouter des dépôts externes dans le suiveur mais de ne pas les afficher dans la liste des versions disponibles, et de ne pas générer automatiquement de nouvelles à propos de ces dépôts. Une nouvelle application « dérivé » est maintenant disponible : elle n’en est qu’à ses balbutiements mais peut d’ores et déjà apporter une comparaison utile entre un dérivé et son parent. Vous pouvez la voir à l’oeuvre sur la page du suiveur Kali : http://pkg.kali.org/derivative/. Merci à Offensive Security pour avoir sponsorisé ce travail !

Dans la mesure où j’ai poussé Django 1.7 vers les dépôts wheezy-backports, toutes les instances de suiveurs de distribution que je gère ont été mis à jour avec cette version de Django, et j’ai opté pour rendre cette version obligatoire. Cela a permis de mettre en place la nouvelle fonctionnalité « migrations Django » pour gérer les futures mises à jour de schémas de base de données (j’ai volontairement évité tout changement de schéma jusqu’à aujourd’hui afin d’éviter les problèmes induits par le passage des migratinos gérées par South vers celles gérées par Django).

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in October 2014 contribuée par Weierstrass01.

Un commentaire | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

17 November, 2014 09:12AM by Raphaël Hertzog

Mon rapport Debian LTS d’octobre 2014

J’ai consacré dix heures rémunérées durant le mois d’octobre à travailler sur Debian LTS. J’aurais du travailler quatre heures de plus, mais pour diverses raisons cela n’a pas pu se faire. Je travaillerai donc quatre heures supplémentaires au mois de novembre.

Durant ces dix heures donc, j’ai effectué le travail suivant :

  • Tri de bogues CVE : j’ai poussé ce mois-ci 23 commits vers le dépôt SVN du suiveur de sécurité, et créé le rapport de bogue n°765352 concernant wpa;
  • J’ai publié une mise à jour pour mysql-5.1 (DLA-75-1), corrigeant trois CVE;
  • J’ai sponsorisé l’envoi de ppp version 2.4.5-4+deb6u1 corrigeant DLA-74-1, qui avait été préparé par Andrew Bartlett ;
  • J’ai envoyé une nouvelle version d’apache2 (DLA-71-1), corrigeant 2 CVE ;
  • J’ai créé quelques rapports de bogues concernant debian-security-support et demandant que certains paquets soient marqués comme non supportés dans Squeeze : cf. n°765374 pour axis2c et rampart, n°765452 pour une nouvelle fonctionnalité devant permettre aux paquets binaires d’être marqués comme non supportés, de sorte que glassfish-appserv soit répertorié en tant que tel (n°765454).

Après quelques mois de travail sur Debian LTS, je commence à avoir une meilleure vision du workflow et de ce qui peut être fait ou pas fait. Mais je suis toujours abasourdi de compter si peu d’utilisateurs de Squeeze sur la liste de diffusion. Si vous utilisez toujours Squeeze, inscrivez-vous s’il vous plaît à cette liste et testez les paquets soumis pour test/évaluation par les contributeurs. Cela nous aide vraiment d’avoir un retour des « vrais » utilisateurs avant de publier une mise à jour, en particulier lorsque le contributeur Debian qui l’a préparée n’est pas un utilisateur dudit paquet… tout le monde n’a pas les compétences requises pour préparer une mise à jour de sécurité, mais tout le monde peut aider à tester des paquets, vous n’avez pas d’excuses ! ;-)

Et nous sommes toujours à la recherche de nouvelles organisations rejoignant le projet LTS, soit en apportant de l’aide (comme Catalyst le fit en laissant Andrew Bartlett travailler sur LTS, merci à eux !) ou en sponsorisant le projet et en permettant aux autres de faire le travail.

Ceci est une traduction de mon article My Debian LTS report for October 2014 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

17 November, 2014 09:09AM by Raphaël Hertzog

November 16, 2014

hackergotchi for Vincent Bernat

Vincent Bernat

Préparer des règles Netfilter dans un espace de nommage réseau

Souvent, les règles d’un pare-feu sont mises en place à l’aide d’un script faisant appel aux commandes iptables et ip6tables. Cela permet notamment d’utiliser des variables et des boucles. Il y a cependant trois inconvénients majeurs à cette méthode :

  1. Pendant toute la durée du script, le pare-feu est temporairement incomplet : les nouvelles connexions peuvent ne pas être autorisées à s’établir ou, inversement, le pare-feu peut autoriser des flux qui ne devraient pas l’être. Les règles de NAT nécessaires au bon fonctionnement du routeur peuvent également être absentes.

  2. Si une erreur survient, le pare-feu reste dans un état intermédiaire. Il est alors nécessaire de s’assurer que les règles autorisant l’accès à distance soient placées très tôt pour garder la main. Un système de retour automatique à la précédente version est également nécessaire pour corriger la situation rapidement.

  3. Construire de nombreuses règles peut être très lent. Chaque appel à ip{,6}tables va rapatrier l’ensemble des règles du noyau, ajouter la règle voulue et renvoyer le tout au noyau.

Avec iptables-restore

Une façon classique de résoudre ces trois aspects et de construire un fichier de règles qui sera lu par iptables-restore et ip6tables-restore1. Ces outils envoient en une seule passe les règles au noyau qui les applique de manière atomique. Habituellement, un tel fichier est construit par ip{,6}tables-save mais un script peut également faire l’affaire.

La syntaxe comprise par ip{,6}tables-restore est similaire à celle de ip{,6}tables. Cependant, chaque table dispose de son propre bloc et les chaînes doivent être déclarées différemment. Voyons un exemple :

$ iptables -P FORWARD DROP
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
$ iptables -N SSH
$ iptables -A SSH -p tcp --dport ssh -j ACCEPT
$ iptables -A INPUT -i lo -j ACCEPT
$ iptables -A OUTPUT -o lo -j ACCEPT
$ iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables -A FORWARD -j SSH
$ iptables-save
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SSH - [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j SSH
-A OUTPUT -o lo -j ACCEPT
-A SSH -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT

La table nat et la table filter disposent chacune de leur bloc. La chaîne SSH est déclarée en haut du bloc de la table filter avec les autres chaînes par défaut.

Voici un script qui détourne les commandes ip{,6}tables afin de construire un tel fichier (en s’appuyant massivement sur Zsh2) :

#!/bin/zsh
set -e

work=$(mktemp -d)
trap "rm -rf $work" EXIT

# ➊ Redefine ip{,6}tables
iptables() {
    # Intercept -t
    local table="filter"
    [[ -n ${@[(r)-t]} ]] && {
        # Which table?
        local index=${(k)@[(r)-t]}
        table=${@[(( index + 1 ))]}
        argv=( $argv[1,(( $index - 1 ))] $argv[(( $index + 2 )),$#] )
    }
    [[ -n ${@[(r)-N]} ]] && {
        # New user chain
        local index=${(k)@[(r)-N]}
        local chain=${@[(( index + 1 ))]}
        print ":${chain} -" >> ${work}/${0}-${table}-userchains
        return
    }
    [[ -n ${@[(r)-P]} ]] && {
        # Policy for a builtin chain
        local index=${(k)@[(r)-P]}
        local chain=${@[(( index + 1 ))]}
        local policy=${@[(( index + 2 ))]}
        print ":${chain} ${policy}" >> ${work}/${0}-${table}-policy
        return
    }
    # iptables-restore only handle double quotes
    echo ${${(q-)@}//\'/\"} >> ${work}/${0}-${table}-rules #'
}
functions[ip6tables]=${functions[iptables]}

# ➋ Build the final ruleset that can be parsed by ip{,6}tables-restore
save() {
    for table (${work}/${1}-*-rules(:t:s/-rules//)) {
        print "*${${table}#${1}-}"
        [ ! -f ${work}/${table}-policy ] || cat ${work}/${table}-policy
        [ ! -f ${work}/${table}-userchains || cat ${work}/${table}-userchains
        cat ${work}/${table}-rules
        print "COMMIT"
    }
}

# ➌ Execute rule files
for rule in $(run-parts --list --regex '^[.a-zA-Z0-9_-]+$' ${0%/*}/rules); do
    . $rule
done

# ➍ Execute rule files
ret=0
save iptables  | iptables-restore  || ret=$?
save ip6tables | ip6tables-restore || ret=$?
exit $ret

En ➊, une nouvelle fonction iptables() est définie et masque la commande du même nom. Elle tente de localiser le paramètre -t pour savoir quelle table est concernée par la règle. Si le paramètre est présent, la table est mémorisée dans la variable $iptables et le paramètre est retiré de la liste des arguments. La défintion d’une nouvelle chaîne avec -N ou la mise en place d’une politique par défaut avec -P sont également gérés.

En ➋, la fonction save() va émettre les règles qui seront lues par ip{,6}tables-restore. En ➌, les règles de l’utilisateur sont exécutées. Chaque commande ip{,6}tables appelle en réalité la fonction précédemment définie. Si aucune erreur n’est survenue, en ➍, les commandes ip{,6}tables-restore sont invoquées.

Cette méthode est parfaitement fonctionnelle3. Toutefois, la méthode suivante est bien plus élégante.

Avec un espace de nommage

Une approche hybride est de construire les règles avec ip{,6}tables dans un espace de nommage réseau (network namespace) puis de les sauver avec ip{,6}tables-save et enfin de les appliquer dans l’espace de nommage principal avec ip{,6}tables-restore.

#!/bin/zsh
set -e

alias main='/bin/true ||'
[ -n $iptables ] || {
    # ➊ Execute ourself in a dedicated network namespace
    iptables=1 unshare --net -- \
        $0 4> >(iptables-restore) 6> >(ip6tables-restore)
    # ➋ In main namespace, disable iptables/ip6tables commands
    alias iptables=/bin/true
    alias ip6tables=/bin/true
    alias main='/bin/false ||'
}

# ➌ In both namespaces, execute rule files
for rule in $(run-parts --list --regex '^[.a-zA-Z0-9_-]+$' ${0%/*}/rules); do
    . $rule
done

# ➍ In test namespace, save the rules
[ -z $iptables ] || {
    iptables-save >&4
    ip6tables-save >&6
}

En ➊, le script est réexécuté dans un nouvel espace de nommage réseau. Celui-ci dispose de ces propres règles de pare-feu qui peuvent être modifiées sans altérer celles de l’espace de nommage principal. La variable $ipatbles est utilisée pour déterminer quel est l’espace de nommage courant. Dans le nouvel espace de nommage, les fichiers de règles sont exécutés (➌). Ceux-ci contiennent l’appel aux commandes ip{,6}tables. Si une erreur survient, nous n’allons pas plus loin grâce à l’utilisation de set -e. Sinon, en ➍, les règles sont sauvegardées avec ip{,6}tables-save et envoyées dans l’espace de nommage principal en utilisant les descripteurs de fichier dédiés à cet effet.

L’exécution dans l’espace de nommage principal continue en ➊. Les résultats de ip{,6}tables-save sont envoyées à ip{,6}tables-restore. À ce point, le pare-feu est presque fonctionnel. Les fichiers de règles sont toutefois rejoués (➌) mais les commandes ip{,6}tables sont neutralisées (➋) de façon à ce que les éventuelles autres commandes, comme par exemple l’activation du routage IP, soient exécutées.

Le nouvel espace de nommage ne dispose pas du même environnement que l’espace de nommage principal. Notamment, il ne contient pas d’interfaces réseau. Il n’est donc pas possible de consulter ou de configurer des adresses IP. Lorsque des commandes ne peuvent être exécutées que dans l’espace de nommage principal, il est nécessaire de les préfixer par main :

main ip addr add 192.168.15.1/24 dev lan-guest

Jetez un coup d’œil à un exemple complet sur GitHub.


  1. iptables-apply est un autre outil pratique. Il applique un fichier de règles et revient automatiquement en arrière si l’utilisateur ne confirme pas le changement dans un laps de temps donné. 

  2. Zsh contient des primitives assez puissantes pour manipuler les tableaux. De plus, il ne nécessite pas d’utiliser les guillemets autour de chaque variable pour éviter leur découpage lorsqu’elles contiennent des espaces. Cela rend le script bien plus robuste. 

  3. S’il fallait pinailler, il y a trois petits problèmes. Primo, lorsqu’une erreur survient, il peut être difficile de savoir quelle partie du script l’a provoquée car on ne dispose que de la ligne dans le fichier de règles qui a été généré. Deuzio, une table peut être utilisée avant d’être définie ce qui peut faire passer inaperçu certaines erreurs dues à un copier/coller. Tertio, l’application de la partie IPv4 peut réussir alors que la partie IPv6 a échoué ou vice-versa. Ces problèmes n’existent pas avec la deuxième méthode. 

16 November, 2014 03:28PM by Vincent Bernat

Intel Wireless 7260 comme point d'accès

Mon routeur personnel contient une carte wifi carte Intel Dual-Band Wireless-AC 7260 afin de servir de point d’accès. Cette carte supporte les normes 802.11ac (en 5 GHz) et 802.11n (à la fois en 5 GHz et en 2.4 GHz). Bien qu’elle ait bonne réputation en mode client, ce n’est pas vraiment le choix idéal pour un point d’accès.

$ lspci -k -nn -d 8086:08b1
03:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b1] (rev 73)
        Subsystem: Intel Corporation Dual Band Wireless-AC 7260 [8086:4070]
        Kernel driver in use: iwlwifi

En bref : optez plutôt pour une carte Atheros.

Limitations

Tout d’abord, une carte dite « double bande » ne peut utiliser qu’une seule bande de fréquences à la fois car elle ne dispose généralement que d’une seule radio. Quasiment toutes les cartes wifi ont cette limitation. Pour construire un point d’accès supportant les deux bandes à la fois, deux cartes sont nécessaires.

5 GHz

Il est impossible de mettre en place un point d’accès 5 GHz avec cette carte. Le microcode embarqué ne le permet pas. Cela peut se vérifier avec la commande iw :

$ iw reg get
country CH: DFS-ETSI
        (2402 - 2482 @ 40), (N/A, 20), (N/A)
        (5170 - 5250 @ 80), (N/A, 20), (N/A)
        (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS
        (5490 - 5710 @ 80), (N/A, 27), (0 ms), DFS
        (57240 - 65880 @ 2160), (N/A, 40), (N/A), NO-OUTDOOR
$ iw list
Wiphy phy0
[...]
        Band 2:
                Capabilities: 0x11e2
                        HT20/HT40
                        Static SM Power Save
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        DSSS/CCK HT40
                Frequencies:
                        * 5180 MHz [36] (20.0 dBm) (no IR)
                        * 5200 MHz [40] (20.0 dBm) (no IR)
                        * 5220 MHz [44] (20.0 dBm) (no IR)
                        * 5240 MHz [48] (20.0 dBm) (no IR)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 192 sec)
                          DFS CAC time: 60000 ms
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 192 sec)
                          DFS CAC time: 60000 ms
[...]

Alors que la bande des 5 GHz est autorisée par le CRDA (le composant logiciel qui indique le domaine de réglementation actuel), toutes les fréquences sont marquées en no IR. Voici l’explication de ce drapeau:

Le drapeau no-ir permet d’interdire toute possibilité d’initier une transmission radio, y compris l’envoi de sondes (beacons). Ainsi, les interfaces AP/IBSS/Mesh/GO ne peuvent initier une communication sur ces canaux tant que le drapeau est présent.

SSID multiples

Cette carte ne peut publier qu’un seul SSID. La possibilité d’en émettre plusieurs est intéressante pour pouvoir proposer un réseau public (routé à travers Tor), un réseau invité pour les personnes de passage et un réseau privé. La commande iw confirme cette limitation :

$ iw list
        valid interface combinations:
                 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
                   total <= 3, #channels <= 1

À titre de comparaison, voici ce que la même commande renvoie pour une carte Atheros capable de publier 8 SSID simultanément :

$ iw list
        valid interface combinations:
                 * #{ managed, WDS, P2P-client } <= 2048, #{ IBSS, AP, mesg point, P2P-GO } <= 8,
                   total <= 2048, #channels <= 1

Configuration en point d’accès

Nonobstant ces limitations, la carte fonctionne correctement en point d’accès. Voici la configuration que j’utilise avec hostapd :

interface=wlan-guest
driver=nl80211

# Radio
ssid=XXXXXXXXX
hw_mode=g
channel=11

# 802.11n
wmm_enabled=1
ieee80211n=1
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40][DSSS_CCK-40][DSSS_CCK-40]

# WPA
auth_algs=1
wpa=2
wpa_passphrase=XXXXXXXXXXXXXXX
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

L’utilisation du canal 11 impose de se limiter au 802.11n HT40-. La page de Wikipedia sur le 802.11n contient un tableau permettant de savoir si on peut utiliser HT40-, HT40+ ou les deux.

16 November, 2014 03:27PM by Vincent Bernat

Remplacer la box Swisscom par un routeur sous Linux

J’ai récemment déménagé à Lausanne, en Suisse. Le coût de l’accès à Internet est plus élevé qu’en France. Alors que Free propose un accès FTTH à 1 Gbps1 pour environ 38 € (TV et téléphone inclus), Swisscom fournit le même service pour environ 200 €2. Mon appartement est éligible à l’offre fibre de Swisscom. J’ai opté pour le forfait de 40 Mbps sans ligne téléphonique pour environ 80 €.

Comme de nombreux FAI, Swisscom fournit un boîtier Internet ainsi qu’un second boîtier pour la télévision que j’ai laissé dans son carton. Le boîtier Internet comprend quelques fonctionnalités sympathiques comme la possibilité de configurer le pare-feu, un réseau wifi pour les invités et le support de quelques protocoles de partage de fichiers. Mais pas d’accès shell !

J’ai acheté un petit PC pour prendre sa place. J’y ai installé la prochaine Debian Jessie. La quasi-intégralité de sa configuration logicielle est disponible dans un dépôt GitHub.

Je ne décris ici que les éléments spécifiques à Swisscom (ainsi que la QoS). Je vous invite à consulter ces deux articles connexes pour plus de détails sur d’autres aspects :

Ethernet

Le boîtier Internet est fourni avec un SFP 1000BX de marque Siligence3. La réception et la transmission se font sur la même fibre en utilisant des longueurs d’onde différentes pour chaque direction.

Plutôt que d’investir dans une carte avec un port SFP, j’ai opté pour un switch Netgear GS110TP qui dispose de 8 ports cuivres et de 2 ports SFP. C’est un switch assez économique disposant de pas mal de fonctionnalités intéressantes comme les VLAN et LLDP. Il fonctionne correctement tant que l’on n’exige pas trop de lui.

IPv4

La connectivité IPv4 est fournie sur le VLAN 10. Un client DHCP est obligatoire pour l’obtenir. Il est nécessaire de publier l’option DHCP « vendor class identifier » (option 60) lors de la demande de bail. Avec le client ISC DHCP, il suffit d’ajouter la ligne suivante dans le fichier /etc/dhcp/dhclient.conf :

send vendor-class-identifier "100008,0001,,Debian";

Les deux premiers nombres identifient le service demandé. Le reste n’a pas d’importance. Une fois le bail DHCP obtenu, un navigateur est nécessaire lors de la première utilsation pour s’identifier auprès de Swisscom.

IPv6

Swisscom fournit IPv6 à travers le protocole 6rd. Cela fait partie des mécanismes pour faciliter la migration vers IPv6 sans changer le cœur de réseau. Un tunnel est mis en place au-dessus d’IPv4. Ce type de tunnel est supporté nativement sous Linux depuis le noyau 2.6.33.

Pour configurer IPv6, il faut obtenir le préfixe à utiliser et l’IP de la passerelle 6rd. Certains FAI fournissent ces valeurs dans la réponse DHCP (option 212) mais ce n’est pas le cas de Swisscom. La passerelle est 6rd.swisscom.com et le préfixe est 2a02:1200::/28. Après avoir ajouté l’adresse IPv4 au préfixe, il reste 4 bits pour créer des sous-réseaux internes.

Swisscom ne fournit pas d’IPv4 fixe. On ne peut donc pas construire à l’avance son préfixe IPv6. Le script suivant, à placer dans /etc/dhcp/dhclient-exit-hooks.d/6rd, met en place le tunnel :

sixrd_iface=internet6
sixrd_mtu=1472                  # This is 1500 - 20 - 8 (PPPoE header)
sixrd_ttl=64
sixrd_prefix=2a02:1200::/28     # No way to guess, just have to know it.
sixrd_br=193.5.29.1             # That's "6rd.swisscom.com"

sixrd_down() {
    ip tunnel del ${sixrd_iface} || true
}

sixrd_up() {
    ipv4=${new_ip_address:-$old_ip_address}

    sixrd_subnet=$(ruby <<EOF
require 'ipaddr'
prefix = IPAddr.new "${sixrd_prefix}", Socket::AF_INET6
prefixlen = ${sixrd_prefix#*/}
ipv4 = IPAddr.new "${ipv4}", Socket::AF_INET
ipv6 = IPAddr.new (prefix.to_i + (ipv4.to_i << (64 + 32 - prefixlen))), Socket::AF_INET6
puts ipv6
EOF
)

    # Let's configure the tunnel
    ip tunnel add ${sixrd_iface} mode sit local $ipv4 ttl $sixrd_ttl
    ip tunnel 6rd dev ${sixrd_iface} 6rd-prefix ${sixrd_prefix}
    ip addr add ${sixrd_subnet}1/64 dev ${sixrd_iface}
    ip link set mtu ${sixrd_mtu} dev ${sixrd_iface}
    ip link set ${sixrd_iface} up
    ip route add default via ::${sixrd_br} dev ${sixrd_iface}
}

case $reason in
    BOUND|REBOOT)
        sixrd_down
        sixrd_up
        ;;
    RENEW|REBIND)
        if [ "$new_ip_address" != "$old_ip_address" ]; then
            sixrd_down
            sixrd_up
        fi
        ;;
    STOP|EXPIRE|FAIL|RELEASE)
        sixrd_down
        ;;
esac

Plutôt que de tenter de construire le préfixe IPv6 avec des commandes shell, un court script Ruby s’en charge. Le module ipaddr est très primitif mais on s’en sort.

Swisscom utilise le même MTU pour tous les clients. Certains sont en PPPoE et donc le MTU à l’intérieur du tunnel est de 1472 et non de 1480. Un outil en ligne permet de vérifier cela rapidement.

Il n’est pas impossible que le PMTUD soit cassé à certains points d’Internet. Bien que non idéal, l’utilisation de TCP MSS permet de contourner les problèmes aléatoires qui peuvent survenir quand on a un MTU inférieur à 1500 :

ip6tables -t mangle -A POSTROUTING -o internet6 \
          -p tcp --tcp-flags SYN,RST SYN \
          -j TCPMSS --clamp-mss-to-pmtu

QoS

MISE À JOUR : Cette section est malheureusement incorrecte, y compris la promesse qu’elle véhicule. Lisez le commentaire de Dave Taht pour en savoir plus.

Il y a très très longtemps, la mise en place d’une QoS efficace était plutôt compliquée. Le script Wonder Shaper était souvent utilisé pour obtenir une configuration honnête. Aujourd’hui, grâce au travail du projet Bufferbloat, il y a deux étapes très simples pour obtenir quelque chose de raisonnable :

  1. Réduire la taille de la queue de transmission des périphériques réseau. Une valeur de 32 paquets aide TCP à détecter rapidement les problèmes de congestion sans brider un lien gigabit.

    ip link set txqueuelen 32 dev lan
    ip link set txqueuelen 32 dev internet
    ip link set txqueuelen 32 dev wlan
    
  2. Utiliser fq_codel comme qdisc par défaut. Un qdisc reçoit les paquets qui sont envoyés par le noyau et décide comment les transmettre à la carte réseau. Ceux-ci peuvent être supprimés, réordonnés ou retardés. fq_codel est un algorithme combinant une gestion équitable des flux et la minimisation des latences. Une gestion équitable des flux signifie que tous les flux sont égaux quant à leur possibilité d’émettre des paquets. Autrement dit, un flux au débit très élevé ne monopolisera pas la carte réseau. Minimiser les latences s’obtient en s’assurant que la taille de la queue de transmission est limitée en supprimant des paquets d’autant plus agressivement que la latence augmente.

    tc qdisc replace dev lan root fq_codel
    tc qdisc replace dev internet root fq_codel
    tc qdisc replace dev wlan root fq_codel
    

  1. Débit descendant de 1 Gbps et débit montant de 200 Mbps. 

  2. Il s’agit du forfait Vivo XL dont le prix est de CHF 169.– pour 300 Mbps. Pour atteindre 1 Gbps, il faut ajouter CHF 80.–. 

  3. Il y a deux références sur le SFP : SGA 441SFP0-1Gb et OST-1000BX-S34-10DI. La transmission se fait sur la longueur d’onde 1310 nm et la réception sur 1490 nm. 

16 November, 2014 03:26PM by Vincent Bernat

November 09, 2014

hackergotchi for Charles Plessy

Charles Plessy

\"J'étudie

# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2014-11-09 12:33+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text #, no-wrap msgid "\n" msgstr "" #. type: Plain text #, no-wrap msgid "\n" msgstr "" #. type: Plain text #, no-wrap msgid "\n" msgstr "" #. type: Plain text #, no-wrap msgid "\n" msgstr "" #. type: Plain text msgid "" "En début d'année, au fil de quelques discussions autour d'un café, un " "collègue (salut François !) m'a fait découvrir la programmation " "fonctionelle. Il m'a vanté les mérites de Haskell et OCaml, et j'ai choisi " "le premier car les articles du blog de Joey Hess que j'avais lu sur " "planet.debian.org avaient déjà piqué mon intérêt à ce sujet." msgstr "" #. type: Plain text msgid "" "Je n'ai pas encore fini d'étudier Haskell, mais comme prévu c'est à la fois " "difficile et très stimulant. C'est aussi très chronophage et cela se " "ressent sur mes contributions à Debian Med, plutôt réduites cette année." msgstr "" #. type: Plain text msgid "" "Mon premier objectif est de réécrire " "[Umegaya](http://umegaya.branchable.com), qui utilise Perl et Berkeley DB " "actuellement et que je ne parviens pas à débugger." msgstr ""

09 November, 2014 12:40PM

Fallait-il une résolution générale ?

En 2009 j'ai appelé à voter par résolution générale au sujet des règles d'adhésion à Debian, pour contrer un changement qui me semblait aller à l'encontre de nos valeurs. Le vote a causé un fort ressentiment et la question s'est posée si une synthèse aurait pu être négociée sans utiliser une procédure contraignante. Personnellement je n'étais pas convaincu, mais pas au point de ne pas avoir de doute, et donc de regrets.

Cette année nous votons à nouveau au sujet d'un changement qui semble pour certains aller à l'encontre de nos valeurs, et l'existence même du vote rend tout compromis difficile. L'amertume sera le vainqueur quel que soit le résultat. Fallait-il appeler à ce vote ? Pour écarter les doutes, j'ai proposé l'amendement numéro trois, disant que cette procédure de résolution générale n'aurait pas du être démarrée.

J'espère que cet amendement battra la proposition originale et fera réfléchir les personnes tentés de tirer la sonnette d'alarme à la prochaine occasion.

PS: l'amendement numéro trois, c'est à dire l'amendement C, c'est à dire le choix numéro quatre. S'il fallait un exemple de plus que la procédure est compliquée, le voici...

09 November, 2014 01:55AM

October 12, 2014

hackergotchi for Raphaël Hertzog

Raphaël Hertzog

Mes activités libres en septembre 2014

Voici le récapitulatif mensuel de toutes mes activités gravitant autour du logiciel libre. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (26,6 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Django 1.7

Depuis que la version 1.7 de Django a été publiée début septembre dernier, j’ai mis à jour le paquet dans le dépôt experimental et continué de pousser pour son inclusion dans unstable. J’ai également envoyé quelques patchs supplémentaires concernant plusieurs dépendances inverses de compilation (python-django-bootstrap-form, horizon, lava-server), puis envoyé le paquet dans unstable. J’ai augmenté à ce moment la criticité de tous les rapports de bogue enregistrés pour des paquets qui ne compilaient alors plus avec Django 1.7.

Plus tard dans le mois, je me suis assuré de la migration du paquet vers testing, qui n’a requis qu’une suppression temporaire de mumble-django (cf. le rapport n°763087). Pas mal de paquets ont été mis à jour depuis (vous pourrez trouver les bogues restants par ici).

Support Debian à long terme

J’ai travaillé à garder Debian Squeeze sûre, cf. l’article qui y est dédié : Mon rapport Debian LTS pour septembre 2014.

Distro Tracker

Le rythme de développement de tracker.debian.org s’est ralenti légèrement ce mois-ci, avec seulement 30 nouveaux commits dans le dépôt, fermant 6 rapports de bogue. Certaines des modifications méritent néanmoins d’être citées : les nouvelles contiennent maintenant de vrais hyperliens vers les rapports de bogue, CVE et URL (en voici un exemple). J’ai également corrigé un problème important concernant la manière dont les utilisateurs étaient identifiés lorsqu’ils utilisaient leurs identifiants de compte Alioth pour s’authentifier via sso.debian.org.

Côté développement, nous sommes maintenant capables de calculer la couverture du code testé par la suite de tests, ce qui est plutôt utile pour identifier les pans de code manquant clairement de tests (cf. bin/gen-coverage.sh dans le dépôt).

Empaquetage divers

Publican. J’ai suivi l’empaquetage des nouvelles versions amont de Publican et, la période de gel approchant, j’ai décidé de m’en occuper. Ça n’a malheureusement pas été aussi simple qu’escompté, car j’ai découvert de nombreux problèmes que j’ai remontés à l’amont (identifiant public invalide, échec de la compilation PDF pour cause de fonction noNumberLines non-disponible, la compilation du manuel requiert une connexion réseau). La plupart de ces derniers ont été corrigés en amont dans l’intervalle, mais le dernier semble provenir de la manière dont nous gérons nos catalogues Docbook XML au sein de Debian. J’ai en conséquence créé le rapport de bogue n°763598 (docbook-xml: xmllint échoue à identifier une copie locale du fichier des entités Docbook), qui reste sans réponse de la part du mainteneur.

Parrainage de paquet. J’ai « sponsorisé » les nouveaux envois de dolibarr (correction d’un bug critique pour la publication), tcpdf (correction d’un bug critique pour la publication), tryton-server (mise à jour de sécurité) et django-ratelimit.

GNOME 3.14. Avec l’arrivée de GNOME 3.14 dans unstable, je me suis occupé de la mise à jour de gnome-shell-timer et j’ai également créé quelques tickets pour des extensions que j’utilise : https://github.com/projecthamster/shell-extension/issues/79 et https://github.com/olebowle/gnome-shell-timer/issues/25.

git-buildpackage. J’ai rapporté de nombreux bogues de git-buildpackage m’ayant affecté depuis que j’ai commencé à utiliser cet outil : n°761160 (gbp pq export/switch devrait être plus intelligent), n°761161 (gbp pq import/export devraient préserver les noms de fichier des patchs), n°761641 (gbp import-orig devrait être moins fragile et plus idempotent).

Merci

Rendez-vous au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Free Software Activities in September 2014 contribuée par Weierstrass01.

Aucun commentaire pour le moment | Vous avez aimé ? Cliquez ici. | Ce blog utilise Flattr.

12 October, 2014 08:47PM by Raphaël Hertzog

September 24, 2014

hackergotchi for Debian France

Debian France

Debian France reconnu comme Debian Trusted Organization

Debian France reconnu comme Debian Trusted Organization

Grâce à la refonte des statuts de l'association, Debian France est maintenant reconnue officiellement comme étant une Trusted Organization. Ainsi, l'association Debian France est habilitée à recevoir des fonds au nom de Debian et procéder à des dépenses pour le projet.

L'annonce a été réalisée par Lucas Nussbaum, Debian Project Leader.

24 September, 2014 07:14AM

September 23, 2014

BSP (chasse aux bugs) à Paris

BSP à Paris

A la mi-novembre 2014, du 14 au 16, une Bug Squashing Party (BSP ou Hackathon) est organisée dans les locaux de Mozilla à Paris.

Le principe d'une BSP est de réunir des contributeurs Debian avec comme objectif de clôturer autant de bugs que possible dans Debian.

Cet évènement est aussi l'occasion pour des contributeurs potentiels d'échanger avec des Debian Developers ou Maintainers. En effet, de nombreux contributeurs réguliers seront présents et pourront guider les moins expérimentés pour corriger leurs premiers bugs.

Pour des questions d'organisation, une inscription sur le wiki Debian ou Meetup.com est nécessaire.

Programme

Vendredi

10:00 - Ouverture
12:30 - Repas
18:00 - Fin de la journée

Samedi

10:00 - Ouverture
12:30 - Pizza
18:00 - Fin de la journée

Dimanche

10:00 - Ouverture
12:30 - Repas
18:00 - Fin de la journée

Accès

Les locaux se situent au 16 bis boulevard Montmartre (métro: Richelieu Drouot ou Grand Boulevard). Utilisez les interphones pour accéder aux bureaux. Durant le week end, pour accéder aux bureaux, des numéros de portable seront mis à disposition sur la porte principale.

Inscriptions:

23 September, 2014 10:30AM

September 12, 2014

Stéphane Blondon

Key Signing Assistant (concept)

Dans les allées de la DebConf14, j’ai discuté avec Franklin de l’intérêt pour un développeur d’utiliser son téléphone portable lors d’une key signing party.

Les schémas sont un brouillon d’une utilisation possible du téléphone. L’objectif n’est pas de remplacer la rencontre réelle ou la validation mais juste d’aider à l’échange et validation des clefs.

Actuellement, ce n’est qu’un concept ; rien n’est implémenté.

Le principe général est d’utiliser le téléphone comme un terminal pour l’échange et la validation. Les données partent et reviennent sur la station de travail du développeur par l’intermédiaire d’un serveur web.

  • Le téléphone portable considéré doit être un smartphone ;
  • La seule autorisation à donner pour le téléphone est l’accès à internet ;
  • On considère que les échanges réseau sont fait en https. Je ne pense pas que ce soit indispensable mais il n’y a aucune raison de s’en priver.

Avant la key signing party

Le développeur dispose d’un téléphone sur lequel l’application est installée.
Le processus pour installer ses propres informations est le suivant :

Avant la key signing party

Pendant la key signing party

Le processus est à reproduire pour chaque participant.

Pendant la key signing party

Après la key signing party

Une fois rentré chez lui, le développeur récupère l’ensemble de ses validations sur sa machine de travail :

Après la key signing party

Qu’en pensez-vous ?

Source des schémas

Schémas réalisés avec Inkscape, à partir d’icônes Tango et Gnome-Tango.
Les fichiers svg et png sont disponibles dans le répertoire http://stephane.yaal.fr/ksa/.


12 September, 2014 07:18AM by ascendances

September 10, 2014

Olivier Berger (pro)

Le MOOC Bases de données relationnelles est lancé

Nous venons de lancer la première édition du MOOC sur les bases de données relationnelles de Télécom SudParis. Au programme, de la théorie (algèbre relationnelle), de la pratique (dans SQLite dans les navigateurs basés sur WebKit, et plus tard dans PostgreSQL dans une box Vagrant basée sur Debian (voir post précédent)), des contenus et logiciels libres (autant que possible) et pas mal de rush pour finaliser tout ça dans le Moodle.

On débute avec plus de 800 inscrits à la fin du premier jour (y compris les 180 étudiants ingénieurs de 2ème année de Télécom SudParis, qui suivront le cours présentiel en parallèle du MOOC, et collaboreront avec les apprenants externes pour les travaux personnels).

Il est toujours possible de s’inscrire : le gros du travail commence en semaine 2 (qui commence lundi 15/09 à 00h00 heure de Paris).

10 September, 2014 07:53PM by Olivier Berger

August 20, 2014

hackergotchi for Aurélien Jarno

Aurélien Jarno

MIPS Creator CI20

I have received two MIPS Creator CI20 boards, thanks to Imagination Technologies. It’s a small MIPS32 development board:

mips-ci20

As you can see it comes in a nice packaging with a world-compatible power adapter. It uses a Ingenic JZ4780 SoC with a dual core MIPS32 CPU running at 1.2GHz with a PowerVR SGX540 GPU. The board is fitted with 1GB of RAM, 8GB of NOR flash, HDMI output, USB 2.0 ports, Ethernet + Wi-Fi + BlueTooth, SD card slot, IR receiver, expansion headers and more. The schematics are available. The Linux kernel and the U-Boot bootloader sources are also available.

Powering this board with a USB keyboard, a USB mouse and a HDMI display, it boots off the internal flash on a Debian Wheezy up to the XFCE environment. Besides the kernel, the Wi-Fi + Bluetooth firmware, and very few configuration changes, it runs a vanilla Debian. Unfortunately I haven’t found time to play more with it yet, but it looks already quite promising.

The board has not been formally announced yet, so I do not know when it will become available, nor the price, but if you are interested I’ll bring it to DebConf14. Don’t hesitate to ask me if you want to look at it or play with it.

20 August, 2014 08:52PM by aurel32

Olivier Berger (pro)

Building a lab VM based on Debian for a MOOC, using Vagrant + VirtualBox

We’ve been busy setting up a Virtual Machine (VM) image to be used by participants of a MOOC that’s opening in early september on Relational Databases at Telecom SudParis.

We’ve chosen to use Vagrant and VirtualBox which are used to build, distribute and run the box, providing scriptability (reproducibility) and making it portable on most operating systems.

The VM itself contains a Debian (jessie) minimal system which runs (in the background) PostgreSQL, Apache + mod_php, phpPgAdmin, and a few applications of our own to play with example databases already populated in PostgreSQL.

As the MOOC’s language will be french, we expect the box to be used mostly on machines with azerty keyboards. This and other context elements led us to add some customizations (locale, APT mirror) in provisioning scripts run during the box creation.

At the moment, we generate 2 variants of the box, one for 32 bits kernel (i686) and one for 64 bits kernel (amd64) which (once compressed) represent betw. 300 and 350 Mb.

The resulting boxes are uploaded to a self-hosting site, and distributed through vagrantcloud. Once the VM are created in VirtualBox, the typical VMDK drives file is around 1.3Gb.

We use our own Debian base boxes containing a minimal Debian jessie/testing, instead of relying on someone else’s, and recreate them using (the development branch version of) bootsrap-vz. This ensure we can put more trust in the content as it’s a native Debian package installation without MITM intervention.

The VM are meant to be run headless for the moment, keeping their size to the minimum, even though we also provide a script to install and configure a desktop environment based on XFCE4.

The applications are either used through vagrant ssh, for instance for SQL command-line in psql, or in the Web browser, for our own Web based SQL exerciser, or phpPgAdmin (see a demo screencast (in french, w/ english subtitles)), which can then be used even off-line by the participants, which also means this requires no servers availability for our IT staff.

The MOOC includes a section on PHP + SQL programming, whose exercises can be performed using a shared sub-folder of /vagrant/ which allows editing on the host with the favourite native editor/IDE, while running PHP inside the VM’s Apache + mod_php.

The sources of our environment are available as free software, if you’re interested to replicate a similar environment for another project.

As we’re still polishing the environment before the MOOC opening (on september 10th), I’m not mentioning the box URLs but they shouldn’t be too hard to find if you’re investigating (refering to the fusionforge project’s web site).

We don’t know yet how suitable this environment will be for learning SQL and database design and programming, and if Vagrant will bring more difficulties than benefits. Still we hope that the participants will find this practical, allowing them to work on the lab / exercises whenever and wherever they chose, removing the pain of installing and configuring a RDBMS on their machines, or the need to be connected to a cloud or to our overloaded servers. Of course, one limitation will be the requirements on the host machines, that will need to be reasonably modern, in order to run a virtualized Linux system. Another is access to high bandwidth for downloading the boxes, but this is kind of a requirement already for downloading/watching the videos of the MOOC classes ;-)

Big thanks go to our intern Stéphane Germain, who joined us this summer to work on this virtualized environment.

20 August, 2014 01:59PM by Olivier Berger

August 15, 2014

hackergotchi for Aurélien Jarno

Aurélien Jarno

Intel about to disable TSX instructions?

Last time I changed my desktop computer I bought a CPU from the Intel Haswell family, the one available on the market at that time. I carefully selected the CPU to make sure it supports as many instructions extensions as possible in this family (Intel likes segmentation, even high-end CPUs like the Core i7-4770k do not support all possible instructions). I ended-up choosing the Core i7-4771 as it supports the “Transactional Synchronization Extensions” (Intel TSX) instructions, which provide transactional memory support. Support for it has been recently added in the GNU libc, and has been activated in Debian. By choosing this CPU, I wanted to be sure that I can debug this support in case of bug report, like for example in bug#751147.

Recently some computing websites started to mention that the TSX instructions have bugs on Xeon E3 v3 family (and likely on Core i7-4771 as they share the same silicon and stepping), quoting this Intel document. Indeed one can read on page 49:

HSW136. Software Using Intel TSX May Result in Unpredictable System Behavior

Problem: Under a complex set of internal timing conditions and system events, software using the Intel TSX (Transactional Synchronization Extensions) instructions may result in unpredictable system behavior.
Implication: This erratum may result in unpredictable system behavior.
Workaround: It is possible for the BIOS to contain a workaround for this erratum.

And later on page 51:

Due to Erratum HSw136, TSX instructions are disabled and are only supported for software development. See your Intel representative for details.

The same websites tell that Intel is going to disable the TSX instructions via a microcode update. I hope it won’t be the case and that they are going to be able to find a microcode fix. Otherwise it would mean I will have to upgrade my desktop computer earlier than expected. It’s a bit expensive to upgrade it every year and that’s a the reason why I skipped the Ivy Bridge generation which didn’t bring a lot from the instructions point of view. Alternatively I can also skip microcode and BIOS updates, in the hope I won’t need another fix from them at some point.

15 August, 2014 04:02PM by aurel32

July 15, 2014

Stéphane Blondon

DebConf sur la planète

Cette année, la conférence Debian annuelle aura lieu à Portland, aux États-Unis. Comme l’année dernière, j’y participerai. :)

Participation à la conférence Debian

Cette conférence sera la quinzième du nom. Voici une carte des différentes DebConf (passées en rouge, la prochaine en blanc et celle de l’année prochaine en jaune).

debconf14_planet

Jusqu’ici les conférences ont eu lieu alternativement en Europe et en Amérique (du Nord, centrale ou du Sud). Ce sera aussi le cas en 2015 puisque la conférence aura lieu en Allemagne à Heidelberg.

Réalisation de la carte

La carte diffère légèrement de celle réalisée l’année dernière (pour DebConf13) grâce quelques changements de configuration d’xplanet.

Commande utilisée

xplanet -transpng debconf14_planet.png -geometry 1024x512 -projection peters -config debconf14_planet.conf -num_times 1

Deux paramètres ont été modifiés :

  • La carte utilise une projection de Peters plutôt qu’une projection de Mercator. Pour cela, il suffit de remplacer -projection mercator par -projection peters.
  • Avec cette projection, la taille de la Terre n’est pas la même et la zone vide est rempli par défaut par un ciel étoilé. Il est aussi possible de choisir une couleur unie ou sa propre image de fond. Remplacer le paramètre -output par -transpng pour définir le fichier de sortie permet d’avoir un fond transparent.

Fichier debconf14_planet.conf

[earth]
shade=100
marker_file=coords.txt
marker_fontsize=15
map=night.jpg

L’ajout de map permet de définir l’image à utiliser à la place de l’image par défaut. Ici, on obtient une image de la Terre de nuit (qui provient de /usr/share/xplanet/images/night.jpg).

Fichier coords.txt

+44.80 +0.58 "0&1" #Bordeaux, France
+43.65 -79.38 "2" #Toronto, Canada
+59.92 +10.75 "3" #Oslo, Norway
-29.99 -51.22 "4" #Porto Alegre, Brazil
+60.22 +24.66 "5" #Espoo, Finland
+18.91 -98.97 "6" #Oaxtepec, Mexico
+55.96 -3.19 "7" #Edinburgh, Scotland
-37.96 -57.59 "8" #Mar del Plata, Argentina
+39.60 -6.08 "9" #Extremadura, Spain
+40.74 -74.00 "10" #New York City, USA
+44.78 +17.21 "11" #Banja Luka, Republika Srpska, Bosnia and Herzegovina
+12.14 -86.25 "12" #Managua, Nicaragua
+46.87 +6.75 "13" #Le Camp, Vaumarcus, Switzerland
+45.53 -122.67 "14" color=white #Portland, Oregon, USA
+49.24 +8.42 "15" color=yellow #Heidelberg, Germany

Le fichier a simplement été mis à jour (ajout d’Heidelberg, décalage des couleurs).

À bientôt !


15 July, 2014 08:56PM by ascendances

June 18, 2014

hackergotchi for Aurélien Jarno

Aurélien Jarno

Debian is switching (back) to GLIBC

Five years ago Debian and most derivatives switched from the standard GNU C Library (GLIBC) to the Embedded GLIBC (EGLIBC). Debian is now about to take the reverse way switching back to GLIBC, as EGLIBC is now a dead project, the last release being the 2.19 one. At the time of writing the glibc package has been uploaded to experimental and sits in the NEW queue.

EGLIBC is dead for a good reason: the GLIBC development has changed a lot in the recent years, due to two major events: Ulrich Drepper leaving Red Hat and the GLIBC development, and the GLIBC steering committe self-dissolving. This has resulted in a much more friendly development based on team work with good cooperation. The development is now based on peer review, which results in less buggy code (humans do make mistakes). It has also resulted in things that were clearly impossible before, like using the same repository for all architectures, and even getting rid of the ports/ directory. Before we used to have two sets of architectures, the main ones in the glibc repository with architectures like x86, SuperH or SPARC, and the secondary ones in the glibc-ports repository with architectures like ARM or MIPS. As you can see the separation was quite arbitrary, and often leaded to missing changes on the secondary architectures. We also got real stable branches, with regular fixes.

The most important EGLIBC features have been merged to GLIBC, including for example the use of non-bash but POSIX shell, or the renaming of reserved keywords. The notable exception is the support for configurable components, which we originally planned to use for Debian-Installer, by building a smaller flavor using -Os and without NIS and RPC support. At the end we never worked on that, and it seems that the hardware targeted by Debian has grown faster than the GLIBC size, so that is not really a big loss. At the end, we ended up with only 5 missing patches from the EGLIBC tree:

The package names are unchanged (except the source package and the binary package containing the sources) so the transition is fully transparent for the users.

I would like to thank all the CodeSourcery employees who worked on EGLIBC, with a special thank to Joseph Myers who spent countless hours to merge the most important EGLIBC changes back to GLIBC, and sent regular emails about the merge status. I would also like to thanks all the people on the GLIBC side that made the change to happen, and all persons participating in the GLIBC development.

18 June, 2014 08:04PM by aurel32

May 05, 2014

hackergotchi for Vincent Bernat

Vincent Bernat

Dashkiosk: gestion d'écrans pour tableaux de bord

Dashkiosk est une solution permettant de gérer de manière centralisée l’affichage de tableaux de bord sur plusieurs écrans. Il comprend quatre parties :

  1. Une partie serveur va piloter les écrans en leur envoyant les URL à afficher. Une interface web permet de configurer des groupes de tableaux de bord et de les associer à un ensemble d’écrans.

  2. Un récepteur tourne sur chaque écran dans un navigateur web. Au démarrage, il contacte le serveur et attend l’URL à afficher.

  3. Une application Android fournit un navigateur en plein écran pour faire tourner le récepteur.

  4. Une application Chromecast joue le même rôle mais pour les clefs Google Chromecast. Le serveur est capable de piloter ces dernières à l’aide de nodecastor, une réimplementation de l’API de pilotage.

La vidéo ci-dessous démontre les capacités de Dashkiosk en quelques minutes. Elle est aussi disponible au format Ogg Theora.

05 May, 2014 06:39PM by Vincent Bernat

April 16, 2014

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Signing party au salon Solutions Linux le 20 mai 2014

En ces temps troublés, il est important de sécuriser nos échanges d'information — en chiffrant — ainsi que la distribution de logiciels — en signant les publications.

À cette fin, le salon Solutions Linux, Libres et Open Source sera l'occasion d'une signing party PGP, le 20 mai 2014 à 18h près du stand Debian France. Cette signing party est ouverte à tous les visiteurs et exposants du salon.

Pour faciliter les échanges d'empreintes de clefs en cas d'affluence, il est possible que nous utilisions une liste officielle de participants selon le protocole de Zimmermann-Sassaman. Pour préparer cela, il est demandé aux participants de me contacter en m'envoyant leur clef publique. Selon la méthode de signing party retenue, je publierai ultérieurement des instructions plus précises.

16 April, 2014 06:45PM by Tanguy

April 15, 2014

Florent Gallaire

Lucas 2.0

Lucas Nussbaum vient d’être réélu Debian Project Leader.

Comme on peut le constater sur ce graphe, il a obtenu 47 voix de plus que Neil McGovern :

Une analyse plus précise des votes permet d’en calculer une représentation plus “classique” du point de vue des habitudes électorales, et donc plus compréhensible pour la majorité des gens :

Lucas Nussbaum : 56,5%
Neil McGovern : 43,5%

C’est bien une large victoire de Lucas, mais aussi une défaite très honorable pour Neil, qui se positionne donc comme un prétendant sérieux à la victoire l’année prochaine.

flattr this!

15 April, 2014 04:36PM by fgallaire

April 11, 2014

hackergotchi for Roland Mas

Roland Mas

Une page de publicité

Allez, c'est vendredi, c'est permis, je vais m'autoriser deux petites annonces.

Premièrement : rappelez-vous Minami Taiko, ce groupe de tambours japonais du sud de la France. Bon, nous on est des amateurs, mais il se trouve qu'on fait venir, pour le festival Escale à Sète, un vrai groupe de taikos du Japon et tout. Ils s'appellent SEN, et ils vont faire quelques animations musicales dans Sète du 18 au 21 avril. Et avant de repartir dans leur lointain Cipango, ils feront un vrai concert à Montpellier, le mardi 22 avril au soir, sur le campus de l'INRA/Supagro. Et devinez qui fait la première partie ? Minami Taiko, voilà qui ! Donc si vous voulez découvrir le taiko ou voir quelques amateurs suivis d'un vrai groupe, faites donc un tour sur le site de Minami Taiko. À noter qu'il y a aussi un atelier d'initiation le même jour si ça vous intéresse.

Deuxièmement : je suis fier de vous présenter un petit site web que c'est moi qui l'ai fait avec mes petits doigts délicats. Ça s'appelle Chacun sa part, et ça sert à faire des comptes entre amis, genre quand on part en vacances ensemble, ou qu'on fait régulièrement des dépenses partagées dans un groupe de gens. Pour éviter des comptes d'apothicaire à chaque restau, chaque tournée au bar, chaque passage en caisse, on saisit la dépense sur le site, on dit qui a payé et qui a participé, et le site calcule automatiquement les soldes de chacun et propose des suggestions de remboursements pour rééquilibrer les comptes. Y'a un système d'invitations pour que chacun puisse consulter l'état du groupe et saisir des dépenses, des QR-codes pour faciliter la vie aux utilisateurs de smartphone, et même si ça n'a pas encore été testé à grande échelle ça a été validé par une poignée de testeurs dans différentes configurations. Allez-y, c'est cadeau. Chacun sa part. Point com.

11 April, 2014 08:06AM

37

C'est l'heure d'un marronnier de ce blog : la petite chronique numérologique du 11 avril. Celle-ci sera consacrée au nombre 37.

Nombre premier, premier irrégulier, premier cubain, cousin avec 41, hexagonal centré et étoilé, c'est aussi le numéro atomique du rubidium et ça nous fait une belle jambe.

Et c'est un nombre qui colle particulièrement bien à la journée d'aujourd'hui (qui, si jamais les générations futures s'y intéressent, s'annonce pour être belle et douce, avec peut-être un petit voile nuageux).

11 April, 2014 08:06AM

April 04, 2014

Florent Gallaire

Quel DPL pour 2014 ?

Le temps passe vite, et cela fait déjà presque un an que Lucas Nussbaum a été élu Debian Project Leader (DPL). Chaque développeur Debian pouvait donc se porter candidat entre le 3 et le 9 mars à la suite du traditionnel appel à candidatures.

Dès le 13 février, anticipant quelque peu sur le calendrier, Lucas avait exprimé le souhait de se représenter :

As it has been done by other DPLs in the past, I think that it makes sense for the DPL to announce his/her plans way before the next DPL election.

So, let’s do that now: I will run for reelection.

Après ses précédentes tentatives infructueuses de 2004, 2012 et 2013, Gergely Nagy s’était représenté, mais il a finalement dû se résoudre à retirer sa candidature :

Due to unexpected events, my plans and life got turned upside down (for the better) in the past few days, and because of that, I have to scale down a number of things. Unfortunately, running for DPL is one such thing.[…] Therefore, after a lot of thought, I’m withdrawing from the Debian Project Leader elections of 2014.

Le seul concurrent de Lucas est donc finalement Neil McGovern. Le plus important est bien sûr de lire les programmes de chacun des candidats :

Les presque mille développeurs Debian sont libres de faire leur choix depuis le 31 mars et jusqu’au 13 avril lors d’un vote utilisant la méthode Condorcet.

Vous pouvez retrouver tous les débats de la campagne sur la mailing list debian-vote.

flattr this!

04 April, 2014 12:21AM by fgallaire

March 28, 2014

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Payez en liquide (et autres mesures de protection de la vie privée)

TL;DR¹ : les banques cherchent à exploiter les données de paiement par carte bancaire, il est donc temps de revenir au bon vieux liquide, intraçable et anonyme.

Développement d'une possibilité de surveillance généralisée

Notre vie privée s'érode petit à petit, tandis que s'instaure une possibilité de surveillance généralisée. C'est particulièrement visible avec le développement des systèmes de traitement automatique ces dernières décennies, mais ce mouvement est en réalité plus ancien :

Développement d'une possibilité de surveillance généralisée

Notre vie privée s'érode petit à petit, tandis que s'instaure une possibilité de surveillance généralisée. C'est particulièrement visible avec le développement des systèmes de traitement automatique ces dernières décennies, mais ce mouvement est en réalité plus ancien :

  • Dans l'Antiquité, puis au Moyen-Âge, l'État ne connaissait pas d'une façon générale l'identité de ses ressortissants ni de ses habitants, à moins d'effectuer de coûteux recensements.
  • Puis, je ne sais quand, un premier fichage systématique a eu lieu, de sorte que nous sommes connus par l'État dès notre naissance.
  • Un jour, il est devenu indispensable en pratique d'utiliser les services de banques, qui connaissent et disposent des pleins pouvoirs sur l'essentiel de notre patrimoine financier.
  • Depuis l'introduction de la carte bancaire, les banquiers savent pour la plupart de leurs clients où ils se déplacent et où et quand ils effectuent leurs achats.
  • Depuis l'introduction de la vente à distance, notamment par Internet, ces fournisseurs savent exactement ce que chacun de leurs clients leur achètent. Il en est de même pour le commerce local avec les cartes de fidélités, qui ont été créées pour cela.
  • Avec les téléphones portables, les opérateurs connaissent, à la cellule GSM près, les déplacements de tous leurs clients.
  • Avec l'introduction des titres de transport nominatifs tels que les cartes Navigo ou Vélib' à Paris, les régies de transport en commun connaissent avec une précision de l'ordre de la centaine de mètres tous les déplacements d'une grande partie des habitants de ces villes.

En quelques siècles, nous sommes donc passés d'une situation où, sorti du cercle des voisins, des amis et de la famille, chacun était inconnu et ses actions anonymes, à une situation où nous sommes connus et fichés dès notre naissance, et où des entreprises privées connaissent très précisément nos déplacements et nos achats, sans parler de nos communications. Chose plus inquiétante, on s'habitue peu à peu à ce qui paraissait scandaleux il y a quelques dizaines d'années et qui l'est pourtant toujours autant.

Dernières nouvelles : l'exploitation des données d'utilisation des cartes bancaires

Il est souvent objecté que ces entreprises n'exploitent pas ces données. C'est parfois vrai, mais l'expérience montre que lorsqu'il y a une possibilité qu'un abus soit commis, cela arrive tôt ou tard². Face au risque d'exploitation des données d'utilisation des cartes bancaires, on suppose ainsi que ces données n'intéressent pas les banquiers. Sauf que : en fait si.

Limiter l'exploitation de nos données personnelles

Au niveau personnel, il est possible de limiter l'exploitation de données nous concernant, simplement en évitant de les fournir au départ. Comme souvent, il s'agit d'un compromis entre la vie privée parfaite et la fonctionnalité complète. Ainsi, voici une liste de propositions qui permettent de limiter la casse en restant à un niveau de contrainte raisonnable :

  • Payer en liquide : cela implique d'effectuer des retraits de montants plus élevés au distributeur le plus proche de chez soi, d'avoir sur soi un peu plus de liquide et d'en stocker une petite réserve de liquide chez soi. À la rigueur, payer par chèque, les banques enregistrant bien moins d'informations qu'avec les cartes bancaires.
  • Préférer les magasins locaux à la vente à distance. En plus ça coûte moins cher en transport, et par conséquent ça pollue moins.
  • Se déplacer de façon anonyme : si on doit utiliser une carte de transport, prendre la version anonyme, qui existe grâce à la contrainte de la CNIL sur les régies de transport.
  • Éteindre son téléphone mobile pendant les déplacements : il n'est certainement pas pratique de l'éteindre tout le temps, mais puisqu'il est de toute façon interdit de téléphoner en voiture ou à vélo, et que c'est très peu pratique en bus ou en métro, autant ne pas révéler notre position pendant les transports. Même chose pendant les promenades, randonnées ou sorties en général : si on ne s'attend pas à être appelé ou à devoir appeler quelqu'un, autant éteindre le téléphone, en plus ça économise de l'énergie.

Notes

  1. Too long; didn't read, soit trop long, pas lu. C'est un résumé pour décideurs pressés.
  2. Voyez par exemple le cas des verrous numériques sur les livres, qui permettent aux vendeurs de désactiver à distance la lecture d'un livre acheté par un lecteur. Bah, de toute façon ils ne le feront jamais, tu t'inquiètes pour rien. Ah, ben en fait si, Amazon l'a fait. 743.

28 March, 2014 01:36PM by Tanguy

February 26, 2014

Florent Gallaire

[MàJ] XWiki Rendering et Doxia

Il y a un moins d’un mois, au cours du FOSDEM 2014, j’ai assisté à la présentation de Vincent Massol intitulée XWiki Rendering: A content rendering engine. Comme l’architecture est propre, avec une bonne séparation des syntaxes d’entrée et des formats de sortie, une implémentation de la syntaxe de txt2tags serait bien sûr la bienvenue !

J’ai donc ajouté XWiki Rendering et Doxia (oui j’avais précédemment un peu oublié le monde Java)  dans le tableau comparatif des logiciels de balisage léger de Comparaison des langages de balisage (markup) léger (lightweight) : Txt2tags, Pandoc, Docutils, AsciiDoc, Deplate, Stx2any, AFT, Markdown et Textile.

flattr this!

26 February, 2014 03:43PM by fgallaire

February 16, 2014

hackergotchi for Aurélien Jarno

Aurélien Jarno

On configure systems

I will never understand the point of using autotools, cmake or whatever configure system, when later the code uses an hardcoded list of architectures to determine the size of a pointer… Unfortunately for porters this pattern is quite common.

Update: As people keep asking, the way to check for the size of a given type is explained in the autoconf manual. To check for the size of the pointer, the following entry has to be added to configure.ac:

AC_CHECK_SIZEOF(void *)

On a 64-bit system, this will lead to the following entry in config.h:

/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 8

16 February, 2014 01:52PM by aurel32

February 01, 2014

hackergotchi for Charles Plessy

Charles Plessy

Consultation européenne sur les copyrights.

Ça y est, j'ai répondu à la Consultation publique sur la révision des règles de l’Union européenne en matière de droit d’auteur. Coïncidence, la radio diffusait European Super State de Killing Joke.

On peut voir en filigrane dans la consultation un Internet taillé sur mesure pour contrôler la diffusion et la copie des œuvres non-Libres, et surveiller les possibles infractions. Il est donc important de répondre pour rappeler la primauté de la présomption d'innocence et l'importance du respect de la vie privée.

J'ai néanmoins recommandé la minimisation des exceptions au copyright, car donner un accès gratuit temporaire aux documents non-libres, c'est aussi décourager la création d'alternatives que l'on peut copier, modifier et redistribuer librement.

01 February, 2014 01:41PM

January 06, 2014

hackergotchi for Aurélien Jarno

Aurélien Jarno

Debian QEMU images updated

Following the release of Debian Wheezy, I have (finally) updated my set of Debian QEMU images for both Squeeze (6.0.8) and Wheezy (7.3). The following images are now available:

Each of these directories contains a GPG signed README.txt file with the md5sums all files, detailed instructions how to run these images and especially the minimum QEMU version to use.

The requirements to run the default desktop environment have increased a lot between Squeeze and Wheezy. An accelerated graphics card is now needed to be able to use Gnome (unless you use the fallback mode), which is not something provided by QEMU (actually there is now a QXL para-virtualized video card, but the driver is only in unstable). In addition GDM now needs more than 128MiB to start, while this is the default amount of memory provided for virtual machines. I have therefore decided to switch the default desktop environment on the Wheezy images to Xfce and the display manager to LightDM. Both Gnome and GDM are still installed on the images, and the original default can easily be restored using the following commands:

  • update-alternatives --auto x-session-manager
  • echo /usr/sbin/gdm3 > /etc/X11/default-display-manager

Beside this the new images only contain minor changes. The filesystems have been tweaked to not run fsck after a certain amount of days, and locales-all and openssh-server are now installed in all images. For MIPS and MIPSEL, 64-bit kernels are now also installed and provided, so that it is possible to choose between a 32-bit or a 64-bit kernel (see the README.txt for more details).

There is no Debian Wheezy SPARC image available, as QEMU does not fully support SPARC64 yet (it is actually possible to run it, but then the VM crashes often), and Debian Wheezy now only supports 64-bit kernels. I will also invest time to build an S390X image, but so far I haven’t been successful on that.

The following images are still available at the same location, though they haven’t been updated:

  • sparc (Etch)
  • SH4 (Sid from a few years ago)

06 January, 2014 06:46PM by aurel32

hackergotchi for Tanguy Ortolo

Tanguy Ortolo

Avertissement erroné : réponse de l'Hadopi

Un avertissement erroné

Suite à la réception d'un avertissement manifestement erroné de la part de l'Hadopi, j'ai contacté ces derniers pour contester cet avertissement, qui concernait un acte de téléchargement ou de partage effectué avec une adresse IPv4 qui ne correspondait pas du tout à celle associée à ma connexion à Internet.

Réponse de l'Hadopi

J'ai très rapidement reçu une réponse, dont je vous livre ici l'essentiel.

La Commission de protection des droits accuse réception de vos observations, qui en application de l'article R 331-39 du code de la propriété intellectuelle, ont été enregistrées et seront prises en compte, en cas de réitération, lors de l'examen de votre dossier par la Commission de protection des droits.

Et corriger directement l'erreur, ce n'est pas possible ?

Les faits dont la Commission de protection des droits a été saisie concernent la mise en partage d'une œuvre culturelle protégée effectuée par le biais du logiciel : « eMule ».

Ah, intéressant, cette fois-ci c'est bien le logiciel eMule qui est mentionné. Mon second argument redevient donc pertinent, puisqu'il s'agit d'un logiciel que je n'utilise pas, et qu'il me serait difficile d'utiliser puisqu'il est destiné au système d'exploitation Windows, que je n'utilise pas.

En l’espèce, les faits ont été relevés lors d’une connexion via votre accès internet effectuée au moyen de votre service « FreeWifi ».

Service que je n'utilise pas, merci pour cet argument supplémentaire.

Afin de sécuriser l’utilisation de la fonctionnalité « Hot spot » de votre connexion à internet, nous vous recommandons de modifier votre mot de passe. Vous pouvez joindre votre fournisseur d'accès afin qu'il vous donne davantage d'informations sur ce point.

Sécuriser la fonctionnalité de point d'accès sans fil de mon modem-routeur ? C'est déjà fait, depuis quatre ou cinq ans, de la façon la plus simple et la plus sûre qui soit : cette fonctionnalité est entièrement désactivé. Merci pour cette recommandation utile.

Conclusion

Infraction commise depuis une adresse IP différente de la mienne, par un service que je n'utilise pas, lié à une fonctionnalité que j'ai désactivée depuis longtemps, avec un logiciel que je n'utilise pas : les fondations de cet avertissement sont de plus en plus faibles ! Il semble qu'il ne soit pas possible de faire annuler un avertissement avant d'en être arrivé à l'étape de la convocation devant un tribunal pour l'amende ultime de 1.500 euros, mais cela me semble contradictoire avec le droit de rectification que l'Hadopi rappelle à la fin de cet avertissement.

Bien évidemment, je continue à contester cet avertissement, avec les nouveaux éléments que l'Hadopi vient de me fournir. Cette réponse ne refusant pas formellement ma contestation, je viens d'y apporter une nouvelle réponse : affaire à suivre.

Question aux lecteurs : à votre avis, quel serait le meilleur moyen d’authentifier la date d'un document ? Je compte effectuer une capture de l'écran de configuration de mon modem-routeur qui montre que ses fonctionnalités wifi sont complètement désactivées, et la dater, ainsi que les divers éléments dont je dispose aujourd'hui, d'une façon qui soit difficilement contestable. Me l'envoyer moi-même par la Poste, en comptant sur le cachet d'oblitération ? Me l'envoyer en LRAR ?

06 January, 2014 01:01PM by Tanguy

January 03, 2014

Premier avertissement, erroné, de l'Hadopi

Problème théorique de la riposte graduée

Vous vous en souvenez sans doute, la loi Internet et création, qui introduisait une « riposte graduée » à la contrefaçon sur Internet, en instaurant une autorité nationale appelée Hadopi, posait plusieurs problèmes, notamment le reversement de la charge de la preuve. Combinée au recours à une milice privée, Trident Media Guard, pour constater les contrefaçon, cela s'exprime très simplement : inutile d'être coupable pour être condamné.

Mise en pratique : un avertissement erroné

Eh bien, je viens de recevoir mon premier avertissement de l'Hadopi. Et devinez quoi ? Il est erroné, je suis averti et menacé d'une amende de 1.500 euros en cas de récidive d'un acte que je n'ai pas commis. Voici l'avertissement en question, commenté par mes soins.

Madame, Monsieur,

Il a été constaté le mercredi 04 décembre 2013 à 10 heures 48, qu’une ou plusieurs œuvres ont été téléchargées ou partagées depuis votre accès à internet, en violation des droits d’auteur. Ces faits peuvent constituer une infraction pénale.

Alors déjà, le mercredi à onze heures du matin, je suis au travail, et j'ai autre chose à faire que de me connecter chez moi pour y lancer à distance des téléchargements illicites. Mais ce n'est là qu'un faible indice pour suspecter une erreur de leur part, le meilleur reste à venir.

Les faits constatés ont été commis avec le(s) logiciel(s)/protocole(s) eMule, depuis l'adresse IP 78.251.224.134, attribuée à votre connexion par votre fournisseur d’accès à internet Free SAS / ProXad.

Ah, nous y voilà. Ce téléchargement aurait donc été effectué avec eMule, logiciel de partage de fichiers de pair à pair utilisant les protocoles eDonkey et Kad, pour le système d'exploitation Microsoft Windows. Système que je n'utilise pas chez moi, ni au travail d'ailleurs, et dont je ne dispose d'aucune copie. Certes, il n'est pas impossible de faire fonctionner eMule sur le système que j'utilise, Debian, mais c'est là une opération remarquablement inutile, puisqu'il existe déjà des clients eDonkey et Kad fonctionnant nativement sur ce système.

Édition : Ils mentionnent le logiciel ou protocole eMule, cet argument n'a donc pas lieu d'être.

Enfin, ce téléchargement aurait été effectué depuis l'adresse IPv4 78.251.224.134. Problème : ce n'est pas moi, ça. J'ignore qui utilise cette adresse, qui est décrite dans la base de données WHOIS du RIPE NCC comme appartenant à Free qui l'utilise comme « Wifi Address Pool », mais mon adresse IPv4, fixe, que vous pourrez déterminer en résolvant le nom du serveur de ce blog, n'a rien à voir avec celle-ci. Quand au réseau Free Wifi, je crois l'avoir utilisé en tout et pour tout pendant quelques jours avant de recevoir mon modem-routeur Freebox. Depuis, je dispose d'un accès fixe, et j'ai même désactivé toutes les fonctionnalités micro-ondes de ce modem-routeur. Pas de wifi chez moi, et quand je suis en voyage, j'utilise le réseau de mon hôte, pas celui de Free.

Il vous est recommandé de prendre sans délai toutes mesures utiles pour éviter une nouvelle atteinte au droit d’auteur. A cette fin, vous pouvez consulter les fiches pratiques « usage et internet », disponibles sur le site internet de l’Hadopi : www.hadopi.fr/r essources/fiches-pratiques qui vous apporteront notamment des informations pour sécuriser votre ligne. Vous pouvez également vous rapprocher de votre fournisseur d’accès à internet.

« Prendre toutes mesures utiles » pour éviter que quelqu'un d'autre ne récidive avec une connexion à Internet qui n'est pas la mienne, quelque chose me dit que je risque d'avoir du mal à le faire, même en faisant tous les efforts du monde pour sécuriser mon réseau filaire — qui l'est déjà par nature puisqu'il faut s'introduire chez moi pour l'utiliser — et mon réseau micro-ondes — qui n'existe pas et n'a donc pas besoin d'être sécurisé. Superflu, au secours !

Le message formule ensuite une menace d'amende de 1.500 euros en cas de récidive :

Si, malgré les avertissements de l’Hadopi, votre accès à internet était à nouveau utilisé pour des mises en partage ou des téléchargements illégaux, vous pourriez, à l’issue de la procédure suivie devant l’Hadopi, être poursuivi(e) devant le tribunal de police pour contravention de négligence caractérisée. Vous risquez alors une amende d’un montant maximum de 1500 € (article R. 335-5 du code de la propriété intellectuelle). Retrouvez toute information utile sur www.hadopi.fr/acces-au-formulaire-reponse-graduee-jai-recu-un-mail.

Je vous épargne le blabla légaliste qui parsème ce message, ainsi que les explications qui indiquent que le piratage c'est mal et que ça tue des bébés phoques.

Conclusion

Bref, voilà, comme souvent, je suis à la fois satisfait de constater la réalité des problèmes que je dénonçais lors de la mise en place d'un système dangereux, et déçu par le fait que ce système ait été mis en place en dépit des critiques dont la pertinence vient d'être démontrée.

03 January, 2014 12:17PM by Tanguy

December 30, 2013

Florent Gallaire

Arrêtez d’écrire des classes !

En créant les nouvelles fonctionnalités ASCII art de txt2tags, j’ai été amené à développer un certain nombre de fonctions spécifiques que j’ai donc logiquement fini par extraire dans une librairie autonome nommée aa.py. Pour des raisons historiques, d’habitude des utilisateurs et de facilité de diffusion, Aurélio Jargas – le BDFL de txt2tags – m’a demandé de réintégrer ces fonctions dans le fichier principal, ce à quoi il a ajouté :

Aurélio: move them back to global functions or creating a aa class in txt2tags?
option 2 would be cool

J’ai réfléchi, puis j’ai réintégré mes fonctions, telles quelles, sans créer de classe aa. Créer une classe dans ce cas ne me semblait pas adapté, complexifiant le code sans raison théorique valable ni contrepartie pratique positive.

Peu de temps après, je suis tombé sur une présentation intitulée Stop Writing Classes faite par le core developer Python Jack Diederich lors du PyCon 2012. J’y ai retrouvé beaucoup de choses que je pensais et d’autres que je n’avais pas encore clairement formalisées. Elle est particulièrement intéressante car elle utilise de vrais exemples de code, dont une horreur produite par des ingénieurs de chez Google !

On pourrait résumer cette réflexion avec les deux principes les plus importants de la programmation selon moi : KISS (Keep It Simple, Stupid) et DRY (Don’t Repeat Yourself). On peut remarquer que ce qui est pertinemment décrit comme une mauvaise utilisation des classes, correspond globalement à un style de programmation à la Java. Pour ceux qui ne comprendraient pas l’anglais et pour les gens pressés, voici donc les principales recommandations à retenir :

  • Diminuer le nombre de classes en refactorisant le code ;
  • Ne pas écrire de classes vides, qui pourraient être utiles plus tard, en utilisant pass, les écrire plus tard si besoin ;
  • Si une classe n’a que deux méthodes, et que l’une d’elle est __init__, c’est que ce ne devrait pas être une classe ;
  • Quand un dictionnaire suffit, ne pas le camoufler dans une classe ;
  • Ne pas créer de nouvelles exceptions, utiliser celles de la librairie standard, qui sont connues et comprises de tous ;
  • Les espaces de noms existent pour éviter les collisions, pas pour faire de la taxinomie, il faut donc qu’ils restent le plus plat possible.

Je finis en donnant la parole à la défense, avec cet article technique d’Armin Ronacher intitulé Start Writing More Classes.

flattr this!

30 December, 2013 04:45AM by fgallaire

December 25, 2013

Carl Chenet

Cadeau de Noël : Publication de Brebis 0.9, le vérificateur automatisé de sauvegarde

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Peu de temps avant ce Noël, l’équipe du projet Brebis a publié la version « Bouddhinette » 0.9 du vérificateur automatisé de sauvegardes. Pour rappel, Brebis est un programme en ligne de commande codé en Python permettant le contrôle automatisé de l’intégrité d’archives (tar, gz, bzip2, lzma, zip) et de la cohérence des fichiers à l’intérieur des archives. Au menu de cette version :

  • Support des archives apk
  • Nouvelles options de la ligne de commandes pour écrire le fichier de configuration (-C), la liste des fichiers dans l’archive (-L) ou les deux (-O) dans un répertoire défini par l’utilisateur (où précédemment ces fichiers étaient écrits par défaut dans le même répertoire que l’archive elle-même).
brebis-brown-big-logo

Anisette, la fière nouvelle mascotte et nouveau logo du projet Brebis généreusement contribué par Antoine Millet

Comme annoncé aux JM2L, Brebis continue d’intégrer des nouveaux types d’archives , mais aussi rend sa manipulation plus flexible afin d’être intégré plus simplement pour répondre aux besoins de ses utilisateurs en s’adaptant plus simplement aux différentes situations existantes..

Feedback sur Brebis

Et vous ? Que pensez-vous de Brebis ? N’hésitez pas à vous abonner à la liste de diffusion de Brebis,  à laisser un commentaire ici ou  un message sur le forum ou à me contacter directement, tous les retours seront appréciés.


25 December, 2013 10:01PM by Carl Chenet

December 08, 2013

Retour sur Brebis, le vérificateur automatisé de sauvegarde, aux JM2L

Suivez-moi aussi sur Identi.ca ou sur Twitter 

Comme chaque année avait lieu à Sophia Antipolis les Journées Méditerrannéennes du Logiciel Libre, organisées par l’association Linux Azur. J’avais proposé pour cette année une présentation du projet  Brebis, le vérificateur automatisé de sauvegarde. C’était pour moi l’occasion de réaliser quelques slides parlant du projet (désormais disponible en ligne – CC by SA) et de recueillir les réactions du public.

jm2l

L’accueil est chaleureux, comma d’habitude et le public est présent. On m’avait accordé un créneau d’une bonne heure. j’ai donc essayé de captiver mon public pendant 50 minutes avant la séance de questions. La présentation se découpe en deux phases, une introduction au domaine de la sauvegarde et à la nécessité de vérifier les sauvegardes régulièrement, puis une seconde partie plus technique sur les fonctionnalités du logiciel Brebis lui-même.

brebis-brown-big-logo

Anisette, la fière nouvelle mascotte et nouveau logo du projet Brebis généreusement contribué par Antoine Millet

La conférence a été filmée, je pourrai donc vérifier ce qu’il en est une fois que les vidéos seront en ligne.

Niveau stand, les exposants sont accueillants et disponibles et je suis content de voir cet événement du Logiciel Libre toujours aussi fréquenté. Trois fois que je fais le déplacement et je repasse sans faute l’année prochaine !

Étiez-vous aux JM2L aussi ? Qu’en avez-vous pensé ? N’hésitez pas à réagir dans les commentaires de ce billet.


08 December, 2013 09:54AM by Carl Chenet

November 15, 2013

hackergotchi for Roland Mas

Roland Mas

10 ans !

Eh ben dites-donc mes aïeux, le temps passe. Le 15 novembre 2003, j'émettais ma première facture en tant que consultant indépendant.

Eh ben dix ans plus tard, y'a eu des hauts et des bas, mais globalement tout va bien, et je continue à faire des factures de temps en temps, et ça me plaît toujours autant.

Touchons du bois pour que ça continue, et on en reparle dans dix ans !

15 November, 2013 02:45PM

November 04, 2013

Stéphane Blondon

Évolution comparée du nombre de bogues entre distribution Linux

Il est difficile de connaitre la vitalité d’une distribution Linux. Il est possible de s’en faire une idée en fonction du nombre de posts sur des forums, de recherche sur un moteur de recherche, du nombre de téléchargement ou la visibilité sur Distrowatch, etc. Regarder le nombre de bogues en est une autre. Après tout, on ne signale des bogues que sur les distributions (et les logiciels) que l’on utilise… C’est celle qu’utilise bubulle.

Le but de l’article est de visualiser l’évolution du nombre de bogues entre Arch Linux, Debian, Ubuntu et RedHat. Puis de poser des pistes sur les causes possibles. À la fin de l’article, des liens vers les scripts de récupération des données (en python, à l’aide des bibliothèques requests et beautifulSoup) et les représentations graphiques (en python, avec la bibliothèque matplotlib) sont fournis.

Résultats obtenus

En bogues cumulés

Bogues cumulés

ArchLinux a un score extrêmement faible (moins de 40.000 bogues) comparé aux autres distributions.
Je connais mal ArchLinux donc je resterai au stade des hypothèses :

  • Je n’ai pas regardé le bon bug tracker. J’ai utilisé les données fournies sur bugs.archlinux.org.
  • Arch aurait un mode de travail différent des 3 autres distributions (par exemple si les problèmes sont signalés directement au responsable du paquet).
  • Arch n’aurait quasiment pas de bogue. Mon expérience personnelle de cette distribution me fait exclure cette hypothèse.
  • Arch aurait finalement peu d’utilisateurs.

Lors de la deuxième moitié 2007, Redhat a une augmentation durable dont j’ignore l’origine. La sortie de RHEL 5 ne me semble pas être une explication très convaincante.

Ubuntu, dernière distribution créée, dépasse toute les autres en 2010. La croissance reste rapide au fil du temps.

Sur le long terme, la croissance de Debian est globalement la même. La croissance des rapports de bogues est plus faible pour Debian qu’Ubuntu. Quelques hypothèses, non exclusives entre elles :

  • Moins d’utilisateurs pour Debian qu’Ubuntu. Ubuntu ayant été créée après, elle aurait dépassée Debian au début 2007 (en supposant un nombre de rapports envoyés par utilisateur égal entre les deux distributions).
  • L’interface web d’Ubuntu faciliterait plus le signalement de bogues que l’utilisation d’e-mails pour communiquer avec le BTS utilisé par Debian
  • On m’a signalé que reportbug, l’outil de signalement de bogues de Debian, aurait lui-même eu des problèmes pendant un moment. Cependant je ne pense pas que ce soit une cause significative sur une période longue.
  • Il y aurait plus d’envois automatiques lors de plantage chez Ubuntu que chez Debian (par exemple lorsque les paquets n’arrivent pas à être reconstruit – FTBFS).

Variations de la croissance du nombre de bogues

Variations au fil du temps

On constate un ralentissement de l’augmentation ces dernières dernières années pour Ubuntu (depuis 2010) et Debian (depuis 2006-2007) et une accélération pour RedHat, au point de rattraper celle de la phase base d’Ubuntu. En effet, la croissance pour Ubuntu subit des cycles en fonctions des publications tous les 6 mois.

C’est le même phénomène que celui de Debian lors de la préparation d’une nouvelle version stable. Phénomène peu visible sur le graphique ci-dessus, il faut regarder un graphique limité aux bogues de Debian.
Concernant Debian, la mesure de l’usage faite avec PopCon montre une augmentation ; il serait intéressant de voir si l’usage ralentit parallèlement à celle des rapports de bogues.

Si la mesure en nombre de bogues est pertinente, la distribution qui monte est RedHat plutôt qu’Ubuntu ou Arch.

Limites de l’approche

L’estimation du nombre de bogues est basé sur les identifiant des bogues donc les résultats peuvent être approximatifs.

Quelques données semblaient aberrantes, elles ont été supprimées des résultats. Les voici :

distrb id_bug AAAA MM JJ
redhat 100213 2002 05 06
redhat 780001 2010 09 29
redhat 900001 2012 03 08
ubuntu 80001 2005 07 25

La comparaison des valeurs absolues entre distribution n’a pas forcément de sens car on ne mesure pas les mêmes choses. C’est d’autant plus vrai que les distributions sont éloignées. Les variations et l’évolution de la variation semble plus pertinente même si elles sont à prendre avec précaution vu les erreurs de mesure…

Méthode de récolte des données et traitement

La récolte des données a été faite avec un script python qui télécharge des pages sur les interfaces web des rapports de bogues (merci requests !) puis cherche la date de création de l’alerte (merci BeautifulSoup !).

Le script est téléchargeable : dl_stats.py.
La bibliothèque requests permet de simplifier la récupération du code html. Lorsqu’il y a une redirection, la bibiothèque suit le lien automatiquement pour obtenir le contenu. Par exemple, pour Ubuntu, l’adresse https://bugs.launchpad.net/bugs/308191 redirige automatiquement vers https://bugs.launchpad.net/ubuntu/+source/xf86-input-multitouch/+bug/308191. Il suffit donc de faire :

r = requests.get("https://bugs.launchpad.net/bugs/308191")

Les statistiques sont écrites sur la sortie standard et doivent être copiées dans des fichiers .txt, un par distribution. Les fichiers seront lus par le script de traçage des graphiques. Ce script utilise matplotlib et est disponible à http://stephane.yaal.fr/evolution-rapports-de-bogues/draw_stats.py. Les fichiers de statistiques utilisés sont disponibles dans le même répertoire (http://stephane.yaal.fr/evolution-rapports-de-bogues/).

Inspirations

La création des graphique est basée sur l’exemple de l’évolution du prix de l’essence disponible sur geophysique.be (évolution du prix de l’essence).

La documentation de matplolib pour personnaliser ces graphiques : pyplot.plot

Merci à Christian Perrier (bubulle) pour cette façon originale d’estimer la vitalité d’une distribution.

Merci aussi à Nirgal, Joey Hess et tout ceux avec qui j’en ai parlé à la DebConf 13 pour leurs réflexions.


04 November, 2013 10:47PM by ascendances

October 10, 2013

hackergotchi for Roland Mas

Roland Mas

Les rumeurs de la mort de ce blog…

…sont un peu exagérées. Mais c'est sûr, c'est calme, et apparemment une partie de mon lectorat s'en inquiète. Donc voici un lot de nouvelles pour ceux que ma vie passionne et qui n'ont plus accès au 3615 Roland.

Alors bon, suite à ce que je vous disais sur Eleven en mai, je me suis mis en quête d'un autre groupe de rock. J'avais cru en trouver un, mais j'ai l'impression que la motivation n'était pas universellement partagée, à tel point qu'on a dû faire moins d'une répétition par mois en moyenne. C'est pas des bonnes conditions, donc je suis de nouveau en recherche. Si vous cherchez un batteur pour jouer du rock aux environs de Montpellier, faites-moi signe.

Cela dit, je ne suis pas resté oisif pour autant : le taiko continue, l'association a été reprise en main, on répète, et hop hop hop on est même invités à jouer en public pas plus tard que ce week-end ! Ça va se passer au parc Borély à Marseille, à l'occasion du festival d'automne organisé par le consulat général du Japon. Plus de détails sur le site de Minami Taiko, vu que c'est comme ça qu'on s'appelle. Le site est neuf aussi, mais on y mettra des photos et peut-être des vidéos.

Sur les autres fronts : côté FusionForge c'est calme, mais la prochaine édition du Debian Administrator's Handbook / Cahier de l'Admin Debian avance petit à petit. On commence non pas à en voir le bout, mais à voir ce qu'il reste à faire avant d'en voir le bout. Mes autres récents petits bricolages de geek feront peut-être l'objet d'un billet dédié si je suis motivé.

Voilà voilà.

10 October, 2013 03:15PM

September 26, 2013

Olivier Berger (pro)

Qu’est-ce que le Linked Data

Voici une traduction en français d’un court document introductif au Linked Data, originellement écrit par Luca Matteis :

http://www-public.telecom-sudparis.eu/~berger_o/linkeddatawhat/whatislinkeddata.html

Bonne lecture.

26 September, 2013 02:20PM by Olivier Berger

August 26, 2013

Olivier Berger (perso)

Synchroniser la musique entre ordinateur (Gnu/Linux) et NAS de la Freebox Revolution

J'utilise git-annex pour synchroniser le partage sur le NAS de la FreeBox Revolution, de mes fichiers de musique numérisée (MP3, Ogg), de façon à pouvoir gérer la musique sur mon ordinateur, tout en permettant de la jouer sur la télévision du salon, via l'interface de la freebox. La même procédure doit marcher pour d'autres NAS/set top boxes.

Données du problème :

  • mettre à jour les fichiers depuis le PC (ligne de commande, interfaces graphiques, numérisation de nouveaux CDs, etc.)
  • avoir un backup sur un disque de sauvegarde (sur une machine différente de cd PC, en cas de fausse manip, ou du NAS, au cas où la freebox plante).
  • avoir les fichiers en clair dans l'arborescence du NAS, sous son répertoire prédéfini par la freebox
  • automatiser la synchronisation et les backups, autant que faire se peut

La procédure est la suivante :

  1. monter sur mon ordi, via CIFS, le disque de la freebox, qu'elle exporte via samba : c'est donc un montage ne supportant pas les liens symboliques : git-annex supporte heuresement le mode "direct" pour les remotes. Ce n'est donc pas une remote réseau, mais une remote locale, dans un répertoire de l'ordi. Appelons-le /mnt/freebox-server dans ce qui suit.
  2. initialiser un dossier de bibliothèque musicale comme étant un repo git-annex :

$ cd ~/Musique
$ git init
$ git annex init "mon ordi"

# ajout des fichiers musicaux

$ git annex add . $ git commit -m "initial"

$ cd /mnt/freebox-server/Musiques # on clone dans un sous-répertoire pour permettre de gérer des fichiers en dehors ce schéma sur la freebox $ git clone ~/Musique all $ cd all $ git annex init "freebox server"

$ cd ~/Musique $ git remote add freebox-server /mnt/freebox-server/Musiques/all # copie des fichiers : long $ git annex copy --to freebox-server $ git annex sync
$ cd /mnt/freebox-server/Musiques/all #$ git remote add laptop $ git annex sync

Normalement, à l'issue de tout cela, le contenu sur la freebox est synchronisé.

Ensuite, il ne reste qu'à ajouter une remote spéciale rsync pour les backups vers une autre machine, mais ça je vous laisse jouer avec git-annex pour voir comment faire ;)

26 August, 2013 09:12AM by obergix

August 10, 2013

Stéphane Blondon

DebConf sur la planète

Le terme DebConf est une abréviation pour Debian Conference. Ce sont des conférences annuelles qui se déroulent à chaque fois dans une ville différente. La DebConf13, conférence ayant le numéro 13 mais qui est la quatorzième parce qu’il y a eu une conférence numéro 0, commence bientôt (le matin du dimanche 11 août 2013) et je vais leur infliger ma présence ! :)
Je vais à la DebConf13

Les précédentes DebConf ont eu lieu en Europe, en Amérique du Nord, Centrale et Sud. L’Afrique et l’Asie n’ont jamais accueilli une de ces conférences mais le nombre de développeurs Debian y est bien plus faible.
Voici l’emplacement des différentes DebConf sur un planisphère :
Les DebConf sur la planète

En rouge, les DebConf passées.
En blanc celle qui est imminente et à Vaumarcus, en Suisse.
En jaune, celle qui sera faite l’année prochaine et à Portland, aux États-Unis.

Réalisation de la carte

La carte a été réalisée avec xplanet, installable avec le paquet éponyme. Éponyme signifiant « du même nom », faites « apt-get install xplanet », pas « apt-get install eponyme ».

commande utilisée

xplanet -output debconf_planet.png -geometry 1024x512 -projection Mercator -config debconf_planet.conf -num_times 1

…qui permet d’écrire une image nommée debconf_planet.png, de 1024 pixels sur 512. La projection de la carte est celle de Mercator. Par défaut, on n’a qu’une vue partielle de la Terre (celle que l’on verrait de l’espace). Des éléments de configuration sont dans un fichier nommé debconf_planet.conf et la commande ne sera exécutée qu’une seule fois. Par défaut, xplanet tourne en boucle et rafraichit l’image régulièrement. Cela permet, par exemple, de mettre à jour un économiseur d’écran basé sur xplanet.

debconf_planet.conf

[earth]
shade=100
marker_file=coords.txt
marker_fontsize=15

shade vaut 100, ce qui permet d’ignorer l’effet jour/nuit qui est appliqué par défaut. coords.txt contient les latitudes et longitudes des points à afficher sur la carte.

coords.txt

+44.80 +0.58 "0&1" #Bordeaux, France
+43.65 -79.38 "2" #Toronto, Canada
+59.92 +10.75 "3" #Oslo, Norway
-29.99 -51.22 "4" #Porto Alegre, Brazil
+60.22 +24.66 "5" #Espoo, Finland
+18.91 -98.97 "6" #Oaxtepec, Mexico 
+55.96 -3.19 "7" #Edinburgh, Scotland
-37.96 -57.59 "8" #Mar del Plata, Argentina
+39.60 -6.08 "9" #Extremadura, Spain
+40.74 -74.00 "10" #New York City, USA
+44.78 +17.21 "11" #Banja Luka, Republika Srpska, Bosnia and Herzegovina
+12.14 -86.25 "12" #Managua, Nicaragua
+46.87 +6.75 "13" color=white #Le Camp, Vaumarcus, Switzerland
+45.53 -122.67 "14" color=yellow #Portland, Oregon, USA

Références

Les dates et lieux des conférences passées et présente sont listées sur la page
https://wiki.debian.org/DebConf.
L’annonce de la conférence 2014 qui se tiendra à Portland a été faite par le responsable du projet Debian.

xplanet dispose de nombreuses autres options. En plus de la page de manuel, plusieurs README sont disponibles dans les répertoires contenus dans /usr/share/xplanet/.
Un exemple de ce qu’il est aussi possible de faire : http://en.wikipedia.org/wiki/Wikipedia:Producing_maps_with_xplanet


10 August, 2013 06:22AM by ascendances

June 24, 2013

Olivier Berger (pro)

Formation Algorithmique et Python pour les profs d’info en prépas scientifiques

Nous avons effectué deux sessions de formation sur l’algorithmique, Python et les bibliothèques Python scientifiques (pylab), la semaine dernière, à destination de futurs professeurs d’informatique de Classes Préparatoires aux Grandes Écoles (CPGE) scientifiques, dans le cadre du dispositif des formations LIESSE.

Cette formation s’inscrit dans l’objectif de former les nouveaux professeurs d’informatique, souvent issus d’autres matières, qui devront enseigner à la rentrée de septembre 2013 l’informatique auprès de tous les étudiants en Sup (nouveau programme).

Cette formation sur deux journées a été montée conjointement entre Télécom SudParis et l’ENSIIE.

Vous trouverez ci-dessous les transparents d’une partie de la formation (essentiellement le premier jour). Le reste correspond au contenu de Notebooks IPython portant sur l’informatique scientifique en Python avec Numpy, Scipy et Matplotlib, et est disponible en ligne (cf. les liens dans ce document PDF, vers des versions des notebooks à télécharger en ligne).

Télécharger : transparents (PDF – 1.6 Mo)

Une archive plus détaillée (avec exemples, codes source Org-Mode et Python, etc.) est également disponible : nous contacter si intéressés.

24 June, 2013 11:13AM by Olivier Berger

May 29, 2013

hackergotchi for Roland Mas

Roland Mas

Le joli mois de mai

Comme d'habitude quand je n'ai rien de vraiment fracassant à annoncer au monde ébahi, ce billet mensuel sera sous forme de trucs-en-vrac.

Premièrement : Raphaël et moi avons obtenu l'accord des éditions Eyrolles pour une libération (conditionnelle) du Cahier de l'Admin Debian dans sa version française. La version anglaise a déjà été libérée l'an dernier, mais le texte original reste pour l'instant sous copyright d'Eyrolles. Mais suite à d'âpres négociations, nous avons obtenu une rétrocession des droits, sous condition de l'assurance d'un certain nombre de ventes du livre. Donc nous avons lancé une campagne de financement, qui nous permettra de fournir cette assurance à Eyrolles, qui pourra en toute confiance lancer une nouvelle édition. Le livre sera bien entendu en librairies, mais les « préventes » par Ulule proposent des contreparties supplémentaires, et surtout elles contribuent à la libération du livre, ce qui permettra son évolution et sa maintenance collaborative. Nous vous encourageons donc chaleureusement à participer à cette campagne.

Deuxièmement : je note une fois de plus que la fin du monde-tel-qu'on-le-connaît, qui était annoncée pour hier, n'a pas eu lieu : au moins dans mon village, ce matin, les rues n'étaient pas à feu et à sang, ni envahies d'ogres mangeurs d'enfants. Ça fait deux fins du monde annoncées puis ratées en moins de six mois. Nous sommes tous des survivors.

Troisièmement : ça n'a rien à voir, mais il y a quand même quelque chose qui s'est fini. C'était il y a quelques semaines et je n'ai pas eu l'occasion d'en parler, mais des divergences sur l'orientation du groupe ont fait que les chemins d'Eleven et de votre serviteur se séparent. Donc je me retrouve en recherche d'un groupe de rock, et Eleven se trouve en recherche d'un batteur. Comme on n'est pas des stars capricieuses, les « divergences » ne sont pas un euphémisme pour des portes qui claquent et des rancunes inextinguibles, désolé de vous décevoir, on s'est juste arrêtés de jouer ensemble. Je vous tiens au courant si (et quand) je trouve un nouveau groupe.

Je crois que c'est tout pour ce mois-ci. La suite… un autre jour.

29 May, 2013 10:00PM

May 02, 2013

Stéphane Blondon

Évolution du nombre de messages sur debian-l10n-fr et debian-users-fr avec pychart

Pychart est une bibliothèque Python permettant des graphiques directement en python. Un paquet Debian est disponible (nommé python-pychart) avec la dernière version 1.39 (qui date de 2006).

Debian utilise massivement des listes de diffusion pour la collaboration de ses membres. Parmi les nombreuses listes existantes, trois sont francophones :

  • debian-users-fr, dédiée aux questions des utilisateurs ;
  • debian-l10n-fr, dédiée aux traductions en français ;
  • debian-news-french, dédiée aux communiqués officiels. Elle est exclue du graphique car elle ne représente pas vraiment l’activité des listes de diffusion.

Pychart est utilisé pour créer un graphique montrant l’évolution du volume de messages postés sur ces deux listes pendant une année glissante (soit d’avril 2012 à avril 2013).

Le graphique

Le graphique représente le nombre de messages électroniques envoyés sur les deux listes par jour.

Volume des messages sur les listes de diffusion Debian francophones

On constate que les pics et les creux se font sur les mêmes mois. Par contre, les tendances générales sont inversées : en hausse pour la liste utilisateur, en baisse pour la liste dédiée aux traductions.

Réalisation

Le code Python est fourni à la fin de l’article. Pychart s’appuie sur de nombreuses inventions anciennes mais solidement éprouvées :

Invention de la poubelle (1884)

Toute la documentation fait des imports globaux (from pychart import *), comme beaucoup d’exemples disponibles sur le web. Pour éviter de polluer l’espace de nom, il suffit d’importer les différents sous-modules de manière classique (import pychart.sousmodule). Je n’ai pas eu besoin d’importer certains sous-modules bien qu’ils soient utilisés dans le script.

Création de postscript (1982)

Plusieurs formats de sortie sont disponibles (ps, pdf, png et svg). Par défaut, le fichier sera en PostScript.
Pour le changer vers le format png :

pychart.theme.output_format = "png"

Pour avoir une sortie en png, ghostscript doit être installé sur le système. PIL n’est pas nécessaire.

Invention de la télévision couleur (1938)

Par défaut, les graphiques seront uniquement en nuances de gris. Si on souhaite avoir plein de couleurs, il faut le déclarer de la manière suivante :

pychart.theme.use_color = True

Invention de l’écriture de travers (-3400)

Il est possible d’orienter le texte affiché (que ce soit pour les axes ou des boîtes de texte ad-hoc). Pour cela, il faut définir l’angle d’orientation (« /a » pour définir que l’on modifie l’angle, « -20 » pour baisser de 20 degrés par rapport à l’horizontale dans l’exemple ci-dessous) :

pychart.axis.X(label="Date", format="/a-20/hL%s")

La définition du formatage de la chaîne à afficher utilise le caractère « / » pour introduire un contrôle. Il est nécessaire de le doubler lorsque l’on souhaite l’afficher (pour une date par exemple).

Invention du dessin (Paléolithique)

pychart.line_plot.T(label=u"debian-user-french", #sert pour la légende
                    data=stats, #la structure des données à afficher
                    ycol=2, #la troisième colonne dans les données
                    line_style=_blue_line #le rendu des données
                    )

Invention du papier (IIième siècle avant JC)

La méthode draw() permet d’afficher les données sur la sortie standard. Il suffit simplement de la rediriger vers un fichier grâce au shell :

$ python volume.py  > volume.png

Code source et références

Le code qui a permis de créer le graphique :

# -*- coding: utf-8 -*-

import pychart.area
import pychart.line_plot
import pychart.theme


pychart.theme.output_format = "png"
pychart.theme.use_color = True
pychart.theme.default_font_size = 14
pychart.theme.title = "14"


stats = (("04//2012", 12.27, 14.43),
        ("05//2012", 10.71, 14.42),
        ("06//2012", 11.77, 13.10),
        ("07//2012", 10.19, 8.55),
        ("08//2012", 11.65, 14.68),
        ("09//2012", 13.00, 18.33),
        ("10//2012", 10.32, 15.06),
        ("11//2012", 6.87, 14.90),
        ("12//2012", 5.48, 10.48),
        ("01//2013", 5.29, 20.58),
        ("02//2013", 10.25, 22.39),
        ("03//2013", 9.74, 24.00),
        ("04//2013", 8.3, 19.80))


_area = pychart.area.T(size = (700, 450),
            y_grid_interval=5,
            x_coord=pychart.category_coord.T(stats, 0),
            x_axis=pychart.axis.X(label="Date", format="/a-20/hL%s"),
            y_axis=pychart.axis.Y(label="Nombre de messages par jour"),
            legend=pychart.legend.T(),
            y_range=(0, None))

_red_line = pychart.line_style.T()
_red_line.width = 2
_red_line.dash = (5, 5)
_red_line.cap_style = 2
_red_line.join_style = 2
_red_line.color = pychart.color.red
_blue_line = pychart.line_style.T()
_blue_line.width = 2
_blue_line.color = pychart.color.royalblue
_l10n_plot = pychart.line_plot.T(label=u"debian-l10n-french", data=stats, line_style=_red_line)
_user_plot = pychart.line_plot.T(label=u"debian-user-french", data=stats, ycol=2, line_style=_blue_line)
_area.add_plot(_l10n_plot, _user_plot)

_area.draw()

Les moyennes journalières ont été calculées préalablement. Elles sont exclues du code source pour ne pas l’alourdir inutilement. Voici les données brutes qui ont servi aux calculs des moyennes :
date debian-l10n-french debian-user-french nbre_jours
2012/04 368 433 30
2012/05 332 447 31
2012/06 353 393 30
2012/07 316 265 31
2012/08 361 455 31
2012/09 390 550 30
2012/10 320 467 31
2012/11 206 447 30
2012/12 170 325 31
2013/01 164 638 31
2013/02 287 627 28
2013/03 302 744 31
2013/04 190 594 30

Les données ont été récupérées à partir des versions publiques des archives des listes de traductions.

La documentation de pychart est disponible à http://home.gna.org/pychart/doc/pychart.html ou dans le paquet python-pychart-doc.

Enfin, Matplotlib répond au même besoin et semble être un projet plus vivant.


02 May, 2013 08:34AM by ascendances

March 29, 2013

Olivier Berger (pro)

Managing Python code with UTF-8 (french chars) in org-mode + babel + minted for LaTeX export

The goal of this article is to illustrate how to manage Python code which includes comments in UTF-8 characters inside a latin-1 source org-mode for LaTeX export.

Note that I’ve pasted in wordpress the HTML generated by org-mode, so I hope it isn’t broken too much.

My typical use case is a french lecture on Python where the text is written in french, as well as some of the code comments and examples

We’ll use org-mode’s babel module to include and manage the Python
examples. The goal is to write the source of the Python programs
directly in the same org source as the class book’s text, and to extract them into a subdir (with the “tangle” feature), so that they can be shipped to the students to experiment with.

The minted LaTeX environment is used, for babel, to make the Python syntax highlighting.

1.1 Issues

  • The source org-mode is in latin-1 so that it compiles with pdflatex
  • The examples source-code will be in UTF-8 so that Python 2.7 executes them well on a modern Linux desktop
  • Minted relies on pygmentize wich doesn’t seem to handle UTF-8 so well

1.2 Solution

We’ll show how to “patch” minted’s use of pygmentize to take advantage
of its conversion capacity to convert the Python sources from UTF-8 to
latin-1 at document rendering time (LaTeX compilation).

It’s a hack, but works.

The current document’s source shows how this works

1.2.1 Customization

The org document should contain the following headers :

#+LANGUAGE:  fr
#+LaTeX_HEADER: \usepackage[latin1]{inputenc}
#+LaTeX_HEADER: \usepackage[french]{babel}
#+LaTeX_HEADER: \usepackage{color}\usepackage{minted}

and the footers :

# Local Variables:
# coding: latin-1
# org-src-preserve-indentation: true
# tab-width: 4
# End:

Also note that pdflatex should use the -shell-escape option necessary for minted

Now, the document should also include the following “patch” for minted :

#+LATEX_HEADER: \makeatletter
#+LATEX_HEADER: \renewcommand\minted@pygmentize[2][\jobname.pyg]{
#+LATEX_HEADER:   \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
#+LATEX_HEADER:     \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
#+LATEX_HEADER:     \minted@opt{startinline} \minted@opt{funcnamehighlighting}
#+LATEX_HEADER:     \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
#+LATEX_HEADER:     -O encoding=UTF-8,outencoding=iso-8859-1 -o \jobname.out.pyg #1}
#+LATEX_HEADER:   \immediate\write18{\minted@cmd}
#+LATEX_HEADER:   % For debugging, uncomment:
#+LATEX_HEADER:   %\immediate\typeout{\minted@cmd}
#+LATEX_HEADER:   \ifthenelse{\equal{\minted@opt@bgcolor}{}}
#+LATEX_HEADER:    {}
#+LATEX_HEADER:    {\begin{minted@colorbg}{\minted@opt@bgcolor}}
#+LATEX_HEADER:   \input{\jobname.out.pyg}
#+LATEX_HEADER:   \ifthenelse{\equal{\minted@opt@bgcolor}{}}
#+LATEX_HEADER:    {}
#+LATEX_HEADER:    {\end{minted@colorbg}}
#+LATEX_HEADER:   \DeleteFile{\jobname.out.pyg}}
#+LATEX_HEADER: \makeatother

The important change is the addition of the -O encoding=UTF-8,outencoding=iso-8859-1 option of pygmentize, that will convert the UTF-8 source code to latin-1.

Hopefully most of the characters will convert fine, for a document written in french.

2 Examples

2.1 Basic Python

This is a generic verbatim example, which doesn’t use babel / minted.

$ python
Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello, world!"
Hello, world!
>>>

2.2 Python source code for french speakers

Here, we first include the source code, so that it can be exported to
an examples/ subdir, with the following (note that the #+ BEGIN_src / #+ END_src should be changed to get rid of the space
character between + and BEGIN / END, and that the :shebang and following text should be on the BEGIN_SRC line… I seem to have not quoted
these properly in this document):

#+name: helloworld
#+ BEGIN_src python :tangle examples/helloworld.py :noweb yes \\
:shebang #!/usr/bin/python :padline no :exports none
# -*- coding: utf-8 -*-

# Ceci est un exemple d'affichage d'une chaîne accentuée

name = raw_input("Quel est vôtre nom ? ")

print "J'espère que ça va bien aujourd'hui", name
#+ END_src

Editing it with “C-c ‘” will open an UTF-8 buffer, so hopefully, this will be consistent with the utf-8 coding system declared on the second line.

The regeneration of the examples/helloworld.py file is made with C-c C-v t (babel “tangling”).

Note that we don’t add the #!/usr/bin/python first line in the source, as we want it to be added by the tangling process (which will also make the script executable).

Once this is done, the script may be run :

$ python examples/helloworld.py 
Quel est vôtre nom ? François
J'espère que ça va bien aujourd'hui, cher François

Now, to add the colorized rendering in the lecture book, we do (here again, remove the spaces):

# +BEGIN_latex
\inputminted{python}{examples/helloworld.py}
# +END_latex

And here it is, rendered by minted:

# -*- coding: utf-8 -*-

# Ceci est un exemple d'affichage d'une chaîne accentuée

name = raw_input("Quel est vôtre nom ? ")

print "J'espère que ça va bien aujourd'hui, cher", name

Here are links to : the source, the PDF result, and the generated Python program.

29 March, 2013 10:44AM by Olivier Berger

August 01, 2012

hackergotchi for Grégory Colpart

Grégory Colpart

Astuces pour gérer un répertoire ext3 bien rempli

Disclaimer : Valable pour de l’ext3 sous Linux (utilisable sur d’autres filesystems ou Unix à vos disques et péril)

Vous avez un répertoire rempli à rabord de nombreux fichiers, et il est impossible de connaître sa taille, le lister ou l’effacer sans impact sur la production ?

Voici quelques astuces :

- Avec un “ls -ld” sur le répertoire, vous pouvez estimer grossièrement le nombre de fichiers présents dans un répertoire. En effet, un répertoire vide fait 4 Ko (je simplifie). Et plus il contient de fichiers, plus sa taille va augmenter. Par exemple, un répertoire contenant 2 millions de fichiers pourra faire une taille de 100 Mo (je parle bien de la taille du répertoire et non pas de la taille du contenu). Attention, c’est variable selon la longueur des noms des fichiers. Et prendre garde aussi que ce n’est pas dynamique : si vous videz complètement un répertoire bien rempli, il gardera sa taille volumineuse (d’où l’intérêt de recréer un répertoire qui s’est rempli “par erreur”).

- Pour lister les fichiers du répertoire, utiliser la commande “ls” n’est pas une bonne idée car elle accède à toute la liste avant de l’afficher. Voici comment lister 10 fichiers sans attendre :

perl -le 'opendir DIR, "." or die; $i=0; while ($i<10) { my $f = readdir DIR; print $f; $i++; }; closedir DIR'

Grâce à leurs noms, vous pouvez désormais examiner (ouvrir, connaître sa taille) un échantillon de fichiers contenus dans votre fameux répertoire.

Pour lister l’ensemble des fichiers sans attendre comme “ls” :

perl -le 'opendir DIR, "." or die; print while $_ = readdir DIR; closedir DIR'

- Pour effacer le contenu du répertoire en limitant l’impact sur la production, oubliez “rm -rf” qui va saturer vos I/O disque mais préférez le faire par blocs de N fichiers avec des pauses de quelques secondes ! Voici une commande “conviviale” qui va faire cela par blocs de 300 fichiers avec des pauses de 5 secondes :

perl -le 'use POSIX qw/strftime/; opendir DIR, "." or die; $i=0; printf "DELETING IN PROGRESS...";
 while (my $f = readdir DIR) {unlink $f;  $i++;
 if ($i % 300 == 0) {printf "...$i files deleted\n".strftime("%Y-%m-%d %H:%M:%S",localtime)." : PAUSE...";
 $| = 1; sleep 5 ; printf "...DONE. "; printf "DELETING IN PROGRESS..."}}; printf "...DONE"; closedir DIR'

EDIT : en complément, on n’oubliera pas que l’on peut aussi gérer la priorité d’ordonnancement des I/O avec la commande ionice
(merci à Sylvain B. de l’avoir souligné)

01 August, 2012 02:24AM by Gregory Colpart

August 18, 2010

Mon compte-rendu de DebConf 10 à New York

DebConf est la conférence annuelle des développeurs du projet Debian. Cela permet aux développeurs et contributeurs de Debian d’assister à des présentations techniques, sociales et politiques, mais aussi de se rencontrer et travailler ensemble. Cette année, la 11e DebConf s’est tenue à New York du 1er au 7 août. Evolix a sponsorisé cette conférence et j’étais donc sur place, voici mon résumé de cette semaine.

Premiers pas plutôt festifs le vendredi soir avec le SysAdmin Day dans un bar à Manhattan puis direction Brooklyn pour une Debian Party organisée par NYC Resistor, un collectif local de hackers en électronique à l’origine de MakerBot, une imprimante 3D Open Source. Samedi c’est l’arrivée à Columbia University, l’université américaine qui accueille la DebConf 10. Une bonne partie des participants est hébergée sur le campus universitaire, dans des chambres avec accès haut-débit et une cafétéria à volonté.

C’est donc le dimanche 1er août que commence la DebConf avec des présentations orientées grand public pour cette première journée appelée le “Debian Day”. Un grand message de bienvenue pour un public plus large en ce premier jour, puis enchaînement des présentations. J’ai tout d’abord assisté à une présentation sur le sysadmin par François Marier qui a livré toutes ses astuces et une série de packages intéressants (unattended-upgrades, safe-rm, etckeeper, fcheck, fwknop, etc.). J’ai d’ailleurs pu échanger par la suite avec lui d’autres informations, sachant qu’il travaille dans une boîte similaire à Evolix : Catalyst située en Nouvelle-Zélande ! J’ai ensuite assisté à la présentation de Stefano Zacchiroli, l’actuel leader Debian, qui encourage fortement les développeurs à réaliser des NMU (Non Maintainer Upload), c’est-à-dire la publication d’un package par un autre développeur que celui responsable officiellement. J’ai ensuite poursuivi avec la présentation du Google Summer of Code 2010 de Debian : une présentation générale puis plusieurs “étudiants” expliquent leur projet en cours : Debian-Installer pour OpenMoko, GUI pour aptitude en QT, etc. D’autres présentations ont ensuite suivies, mais j’ai plutôt été découvrir le “hacklab” : une pièce pourvue de multiprises, switches et points d’accès afin de permettre à plusieurs dizaines de personnes de travailler/hacker. Le “Debian Day” a été un franc succès avec plusieurs centaines de participants. En soirée, c’est l’heure du coup d’envoi “officiel” de la DebConf par Gabriella Coleman, l’une des organisatrices de la DebConf 10, qui présente avec humour la semaine à venir, avec un petit retour en images sur les éditions précédentes.

Deuxième jour, on a le droit à un Bits from DPL en direct de la part de Stefano Zacchiroli (au lieu du traditionnel mail). Ensuite, il y a de nombreuses présentations. Durant DebConf, il y en aura plus de 100 au total, réparties dans 3 salles : Davis (avec vidéo), 414 Schapiro et Interschool (avec vidéo). Le choix est parfois difficile ! Pour ma part, j’ai assisté en fin de matinée à la présentation de la structure américaine à but non lucractif SPI : c’est elle qui gère les droits de la marque Debian, mais pas seulement : OpenOffice.org, Drupal, PostgreSQL, Alfresco, etc. de nombreux projets de logiciels libres utilisent cette structure légale ! Dans l’après-midi, c’est Mark Shuttleworth, fondateur d’Ubuntu et CEO de Canonical, qui nous présente le travail réalisé pour améliorer l’interface graphique des netbooks, notamment par l’intermédiaire du projet Ayatana. Puis, Jorge Castro, responsable chez Canonical des relations avec les développeurs extérieurs, parle de la collaboration entre Ubuntu et Debian. On notera que toute une équipe de Canonical est venue à DebConf et que les relations avec Debian semblent devenir plus sereines. Le soir venu, c’est l’heure de Wine&Cheese, un évènement devenu incontournable pour une DebConf : imaginez des centaines de fromages et alcools venus du monde entier (Italie, Allemagne, France, Mexique, Brésil, USA, Taïwan, Pologne, Kazhastan, Espagne, Nouvelle-Zélande, Corse, Vénézuela, Hollande, Marseille, Irlande, Angleterre, Japon, etc. etc.) et plus d’une centaine de développeurs Debian lâchés dessus pendant des heures… le résultat est… indescriptible ! Pour ma part, j’avais apporté un rosé Bandol, des bières La Cagole, du Banon et de la Tapenade… qui n’ont pas fait long feu.

Troisième jour et l’on débute par un talk d’Eben Moglen, avocat de la FSF, qui rappelle les dangers du Cloud Computing comme la gestion des données privées. Sa réponse : “Chacun devrait avoir un serveur chez soi” et il évoque la FreedomBox, une boi-boîte que tout le monde aurait chez soi pour faire office de petit serveur avec les fonctionnalités classiques (web, messagerie, VoIP). Cette idée rencontre un certain enthousiasme et plusieurs réfléchissent déjà à la réalisation de cette idée ! J’ai ensuite suivi une succession de présentations sur le thème de l’entreprise. On a parlé du déploiement de machines avec le logiciel Puppet, de l’installation automatisée de Debian avec FAI et Gosa, notamment présentée par Mickaël Bank, un développeur allemand très actif dans Debian. On a également des témoignages très intéressants : Russ Allbery, administrateur système et réseau à l’université de Standford en Californie, explique quels sont les arguments en faveur de Debian en entreprise et en profite pour présenter la gestion de Debian à Standford ; Faidon Liambotis, sysadmin chez GRNET (un opérateur public grec), présente leur utilisation de Debian mais aussi leurs choix en terme de déploiement (Puppet/FAI) ou de virtualisation (KVM/Ganeti). Pour terminer la journée, Guido Trotter de chez Google, nous parle des fonctionnalités réseau intéressantes sous Linux (VLAN, tunnels, routing, etc.). Une journée riche en idées et en informations ! En soirée, nous avons visualisé le film Open Source Sita Sings the Blues et Nina Paley nous a expliqué son choix d’une licence libre pour son film.

Le quatrième jour, c’est le Day Trip. Il s’agit classiquement d’une journée consacrée à des activités touristiques extérieures. Nous avons été visiter l’église Trinity Church à Manhattan où le drame du 11 septembre 2001 a mis un superbe orgue hors d’usage, remplacé temporairement par un orgue électronique “Powered by Linux”… qui a finalement été conservé en raison de sa qualité. Keith Packard, l’un des gourous de X.org employé chez Intel, a joué quelques minutes sur cet orgue. Ensuite, direction la plage de Coney Island. Puis un match de baseball où Stefano Zacchiroli lancera la première balle du match.

Cinquième jour, on reprend avec un BoF (un BoF=Birds of a Feather est une discussion informelle de groupe) sur la virtualisation où plusieurs personnes témoignent de leurs expériences et connaissances sur le sujet. Pas mal d’informations intéressantes, notamment sur le couple Ganeti/KVM pas mal mis en avant par Iustin Pop, l’un des développeurs de Ganeti employé chez Google. J’y apprends notamment que KVM gère une notion de mémoire partagée et ainsi démarrer une 2e machine virtuelle avec un même OS ne consommerait pas de mémoire supplémentaire sur le système hôte ! Suite des présentations, notamment une portant sur DebConf 12 qui pourrait peut-être se dérouler au Brésil. Et fin de la matinée avec François Marier qui présente le projet Libravatar permettant d’offrir une alternative à Gravatar, l’outil centralisé de gestion des avatars. Ses idées sont de se baser sur les DNS pour répartir les avatars pour chaque noms de domaine. Il a déjà commencé à développer une application en Django pour gérer cela. Suite de la journée avec un BoF sur Lintian (outil de vérification de la conformité des packages Debian) géré par Russ Allbery. Puis j’ai assisté à une présentation de Guido Günther qui a expliqué comment gérer son packaging avec Git et notamment git-buildpackage (très intéressant pour moi car je gère déjà mes packages Debian comme ça). Ensuite, petite pause sportive, car une dizaine de développeurs Debian a été participé à un cross de 5 kms dans le Bronx, avec des résultats honorables !

Sixième jour, on débute par Bits from Release Team qui déclare en direct que Squeeze, la prochaine version stable, est désormais freezée ! Un scoop à DebConf ! C’est ensuite Stefano Zacchiroli qui nous présente son travail en cours sur une amélioration de la gestion des dépendances, non seulement pour Debian mais aussi pour les autres distributions : plus de détails sur le site du projet Mancoosi. C’est ensuite la traditionnelle photo de groupe. En début d’après-midi, Margarita Manterola dresse un constat très lucide de l’état de Debian avec son talk Making Debian Rule, again. Puis en fin d’après-midi, c’est un BoF très apprécié mené par Joey Hess sur CUT (Constantly Usable Testing) qui explore les possibilités d’avoir une distribution Testing utilisable en permanence ! Le soir venu, c’est un BoF sur l’utilisation d’OpenPGP et la classique Keysigning Party qui a regroupé plusieurs dizaines de participants.

Septième et dernier jour, encore de nombreuses présentations. J’ai notamment assisté à celle de Philippe Kern, membre de la Release Team, qui a parlé du management de la version stable et de volatile. On notera par exemple qu’on peut désormais corriger des bugs en priorité “Important” dans les points de Release. La suite ce sont des fameux Lightnings Talks, une dizaine de présentations très courtes : une qui suggère d’arrêter complètement d’utiliser les mots de passe, une autre sur le logiciel runit, une autre sur les éclairs (lightnings !) ou encore l’historique en photos des Wine&Cheese Party ! Fun et instructif. Puis c’est l’heure de la conférence de clôture, où l’on remet des prix à ceux qui ont corrigé le plus de bugs mais surtout tous les volontaires sont vivement remerciés et j’en profite pour adresser une nouvelle fois mes remerciements à :
- L’équipe qui a organisé cette DebConf 10 : un travail impressionnant pour un résultat professionnel et communautaire à la fois : on frôle la perfection !
- L’équipe vidéo qui a fait un travail génial et vous pouvez ainsi retrouver l’ensemble des talks en vidéo,
- Les centaines de personnes sympas et passionnées qui contribuent à faire de Debian une distribution de grande qualité… et qui sait évoluer, la preuve avec les sujets abordés lors de cette DebConf !

Petite conclusion de cette semaine intensive, comme vous avez pu le lire : j’ai pu acquérir de nombreuses informations et faire le plein de nouvelles idées, mais aussi avoir des contacts réels avec d’autres développeurs et comprendre encore mieux le fonctionnement “social” de Debian. C’est donc très positif et cela va me permettre d’améliorer mon travail quotidien au sein d’Evolix, mais aussi réfléchir à d’autres projets et me motiver pour contribuer davantage à Debian. Debian rules !

18 August, 2010 11:52AM by Gregory Colpart

January 24, 2010

Autres exemples de migration Etch->Lenny [1]

La fin du support officiel de Debian Etch approchant, il est grand temps de migrer vers Lenny pour les machines pas encore à jour. Après un premier exemple de migration Debian Etch->Lenny, je poursuis la série avec des informations tirées de plusieurs migrations récentes sur des serveurs en production.

Je ne rappellerais pas toutes les précautions nécessaires (tests préalables, sauvegardes, désactivations des services, etc.) ni la classique question  sur  “quand faut-il migrer ?”, vous trouverez tout cela dans mes exemples précédents. Je rappelle simplement l’idée de base : prendre les précieuses Release Notes, mettre à jour le fichier sources.list, puis exécuter les commandes aptitude update && aptitude upgradex, puis mettre-à-jour les services les plus critiques via aptitude install <PACKAGE>, et enfin aptitude dist-upgrade && aptitude dist-upgrade (répéter dist-upgrade est souvent nécessaire).

Passons désormais aux différentes remarques sur ces migrations :

- PostgreSQL : on passe de la version 8.1 à 8.3. Notez qu’il s’agit de paquets différents, il est donc possible de garder la version 8.1 en Etch, et d’installer en parallèle la version 8.3, afin de faciliter encore plus la migration. Pour migrer les données, on réalisera un dump avec pg_dumpall qui sera réinjecté dans la nouvelle base. On pourra ensuite adapter le port dans postgresql.conf pour passer la version 8.3 en production.

- phpPgAdmin : avec PostgreSQL 8.3, on ne peut plus se connecter à la table template1 : c’est le comportement par défaut de phpPgAdmin, qu’on devra donc modifier en mettant postgres à la place (pour la variable $conf['servers'][0]['defaultdb'] dans le fichier config.inc.php)

- Apache : la configuration de l’alias /icons/ est déplacé dans le fichier mods-available/alias.conf, il peut donc faire doublon avec la déclaration dans apache2.conf, ce qui sera signalé via le warning suivant : [warn] The Alias directive in /etc/apache2/apache2.conf at line 240 will probably never match because it overlaps an earlier Alias. Commenter les directives dans le fichier apache2.conf résoudra ce petit soucis.

- OpenLDAP : on passe d’une version 2.3 à 2.4, mais le plus marquant pour la migration est que cela force le processus à tourner avec un utilisateur/groupe dédié. Pour diverses raisons (dist-upgrade interrompu par exemple), on pourra rencontrer des soucis plus ou moins alarmants. Ainsi, j’ai pu rencontrer cette erreur :
bdb(dc=example,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: database “dc=example,dc=com” cannot be opened, err -30978. Restore from backup!
backend_startup_one: bi_db_open failed! (-30978)
slap_startup failed
On veillera donc sur l’utilisateur/groupe propriétaire des fichiers dans le répertoire /var/lib/ldap et, au besoin, on ajustera : chown -R openldap:openldap /var/lib/ldap/
Mon conseil : mettre-à-jour le paquet slapd de façon spécifique avant le dist-upgrade

- Postfix : on passe de 2.3 à 2.5. On notera simplement la valeur par défaut de $smtp_line_length_limit characters qui passe à 990, ce qui coupe les lignes trop longues pour se conformer au standard SMTP. Si cela posait problème, on pourrait revenir à l’ancien comportement en positionnant smtp_line_length_limit=0

- SpamAssassin : l’utilisant en stockant la configuration des utilisateurs dans un annuaire LDAP, le daemon spamd s’est mis à râler : cannot use –ldap-config without -u
Le problème sera résolu en ajoutant l’option -u nobody, ce qui fera tourner spamd en tant que nobody (ce qui n’est pas une mauvaise chose, au contraire).

- Amavis : apparemment, lors de la détection d’un virus, le code retourné n’est plus 2.7.1 mais 2.7.0 : 2.7.0 Ok, discarded, id=13735-07 – VIRUS: Eicar-Test-Signature
Rien de bien grave, mais cela a nécessité d’adapter un plugin Nagios pour qu’il attende le bon code de retour.

- Courier-imapd-ssl : après une mise-à-jour gardant mon fichier /etc/courier/imapd-ssl actuel, j’obtenai des erreurs avec certains clients IMAP :
couriertls: accept: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
En regardant de plus près, certaines directives changent dans ce fichier de configuration, et il est donc conseillé de repartir du fichier proposé par Lenny, et d’y apporter ses modifications (souvent, cela se limite à préciser le certificat).

- Horde : si vous utilisez une base de données pour stocker les paramètres ou autres, la paquet php-db (déjà en Recommends: en Etch) est d’autant plus nécessaire, sous peine d’obtenir l’erreur : PHP Fatal error:  _init() [<a href='function.require'>function.require</a>]: Failed opening required ‘DB.php’ (include_path=’/usr/share/horde3/lib:.:/usr/share/php:/usr/share/pear’) in /usr/share/horde3/lib/Horde/DataTree/sql.php on line 1877

- Sympa : on attaque là le cauchemard de mes migrations. À chaque fois, tellement de soucis majeurs et mineurs, que j’ai l’impression d’être le seul à utiliser ce paquet. Voici en vrac tous les soucis rencontrés : les accents dans les descriptions ont sautés (une sorte de double encodage) et cela a nécessité des corrections manuelles, la table logs_table doit être créée à la main (j’utilise Sympa avec PostgreSQL), et enfin une typo surprenante un “GROUP BY” à la place d’un “ORDER BY” (j’ai ouvert le bug #566252 à ce sujet).

- Asterisk : on passe de la version 1.2 à la version 1.4. Lors de la migration, j’ai constaté un bug étrange, le fichier modules.conf qui charge les modules additionnels a disparu. Du coup, sans lui, Asterisk ne charge pas les modules nécessaires (SIP, etc.). Il a donc fallu le restaurer.

- udev : le meilleur ami des sysadmins (ou pas). Si les migrations douloureuses Sarge->Etch sont loin derrière nous, il reste néanmoins quelques blagues. La dernière en date a été un renommage des interfaces réseau : eth0->eth1 et eth1->eth2. Classique mais étonnant, ce genre d’humour est sensé être dépassé grâce aux “persistent rules” qui nomment les interfaces en fonction de l’adresse MAC. À rester vigilant sur ce point avant le redémarrage donc.

Voilà pour les remarques. Vous noterez que je n’ai pas abordé le noyau Linux. C’est parce que pour la majorité de nos serveurs, ils sont gérés de façons spécifiques (au lieu d’utiliser les noyaux officiels Debian). Ainsi, ils restent dans leur version actuelle (2.6.31 à cette heure) pendant la migration. Bien sûr, cela n’empêche pas d’effectuer un redémarrage de la machine suite à la mise-à-jour : cela permet de s’assurer que tout est bien en place et le sera toujours après un éventuel redémarrage d’urgence.

Rendez-vous pour de prochaines migrations !

24 January, 2010 06:05PM by Gregory Colpart