Syndiquer le contenu
Mis à jour : il y a 9 heures 37 min

L'April invite à signer l'appel pour l'interopérabilité dans l'Éducation nationale

14 novembre, 2014 - 17:38

Dans le cadre de leurs missions les personnels de l'éducation et les communautés scolaires partagent des documents, les utilisent, les modifient et les diffusent.

Dénonçant la stratégie commerciale des formats privateurs et fermés qui vise à provoquer la dépendance des utilisateurs et à créer un marché captif, l'April estime que le service public d'éducation doit cesser d’être l'otage d'écosystèmes propriétaires et doit cesser d'accoutumer ses élèves aux éditeurs dominants. Il ne doit plus y avoir aucun asservissement ni à un logiciel, ni à un fournisseur spécifique.

L'interopérabilité est donc une nécessité qui facilitera le partage et la pérennité des documents ainsi que l'indépendance de tous les acteurs du monde de l'éducation. Les documents mis à disposition ou échangés au sein de l’Éducation nationale doivent être dans des formats de fichiers ouverts et interopérables.

À l'initiative de l'April, plus de 100 personnels, enseignants, syndicats de l'Éducation nationale lancent un appel pour la généralisation des formats ouverts dans l'Éducation nationale. Cet appel reçoit également le soutien de SE-UNSA, du SGEN-CFDT, de la Fédération SUD Éducation, des Clionautes et de LinuxÉdu. Il est ouvert à tous.

Pour l'interopérabilité dans l'Éducation nationale l'April appelle personnels, parents d'élèves, organisations, citoyens à signer.

Télécharger ce contenu au format Epub

Lire les commentaires

Liquid Prompt 1.9

14 novembre, 2014 - 16:22

Le Liquid Prompt est un prompt fluide affichant de manière limpide des informations utiles là où vous les verrez : le prompt de votre shell bash ou zsh. Le liquidprompt était déjà bien rempli de fonctionnalités, mais celles-ci ont été stabilisées et leurs performances améliorées durant les mois écoulés. Il était temps de sortir une nouvelle version officiellement stable.

Pour les détails de cette version surtout composée de correctifs (indicateurs de batterie, température, charge processeur, nom de machine, gestion de code source, chemin, prompt, horloge, etc.) ; les curieux sont invités à consulter le fichier CHANGES : Battery indicator, Temperature indicator, CPU load, Hostname, VCS (Git, Fossil, Subversion, Bazar, Mercurial), Analog clock, etc.

Je profite de cette dépêche pour remercier chaudement les 15 contributeurs qui par leurs patchs ont contribué à cette version : Anthony Gelibert, Frédéric Mahé, Panayiotis Kkolos, Étienne Deparis, François Schmidts, Linus Wallgren, Alexander Belaev, Bartosz Janda, Brett McBride, Chase Colman, Cosmin L. Neagu, Matthew Micene, Vincent Lara, Wilson Maravilha et Yannack. Mais aussi tous ceux qui ont signalés des bogues ou proposé des patchs refusés ou en attente.

Télécharger ce contenu au format Epub

Lire les commentaires

Enemy Territory: Legacy, en résistance

14 novembre, 2014 - 13:56

Le projet Enemy Territory: Legacy est basé sur le code source de Wolfenstein: Enemy Territory, un jeu vidéo de tir subjectif multijoueurs se déroulant durant la Seconde Guerre mondiale et développé par Splash Damage. Sorti en 2003, ce jeu gratuit tournant sur une version modifiée du moteur id Tech 3 (plus connu sous le nom de Quake Ⅲ engine) fut libéré en avril 2010 par Id Software sous licence GNU GPL v.3.

Les buts majeurs du projet ET:Legacy sont d’éradiquer les bogues du moteur, nettoyer le code et le rendre jouable sur les principaux systèmes d’exploitations, tout en restant compatible avec les serveurs de la version propriétaire ET 2.60b, ainsi qu’avec autant de mods existants que possible. Le mod Legacy livré par défaut vise à ajouter de nombreuses fonctionnalités et améliorations, tout en restant proche de la jouabilité d’origine.

En attendant une version stable qui se fait attendre, voici quelques nouvelles du front…

Sommaire

De Wolfenstein 3D à ET:Legacy

ET:Legacy tire ses plus profondes racines de Wolfenstein 3D, l’ancêtre de Doom, developpé par Id Software en 1992 (et communément appelé « Wolf 3D »). Le joueur incarne un soldat Allié qui se retrouve prisonnier dans un château nazi dont il doit s’échapper. Ce jeu a rendu populaire le genre du tir subjectif (FPS).

Publié en 2001, toujours par Id Software, Return to Castle Wolfenstein (RTCW) est un reboot couronné de succès de Wolf 3D. En effet, son mode multi-joueurs est devenu la partie la plus renommée du jeu, ayant même une influence considérable sur le genre. Ayant travaillé sur quelques unes des cartes de l’édition « Game of the Year » de RTCW, le studio indépendant londonien Splash Damage s’est vu confier le travail sur la partie multijoueurs de la suite de RTCW.

Wolfenstein: Enemy Territory était à l’origine prévu pour être publié en tant qu’extension de RTCW, puis plus tard comme un jeu autonome. Toutefois, en raison de problèmes avec la partie solo, la sortie commerciale fut annulée tandis que la partie multijoueur du projet fut mise à disposition en mai 2003 en tant que jeu gratuit, ce qui explique sa popularité et sa très longue longévité. En janvier 2004, un SDK fut publié au profit de la communauté, permettant de créer de nouvelles cartes et modifications.

Tandis que le code du moteur de Quake 3 était disponible depuis 2005, les versions modifiées des moteurs d’Enemy Territory et de Return to Castle Wolfenstein n’ont été libérées qu’en 2010, permettant alors à la communauté de s’essayer à la maintenance et à l’amélioration du logiciel.

La reprise du développement et le problème juridique

Avec une base de code commune à Quake 3, les développeurs derrière le projet libre ioquake3 chez icculus.org se sont naturellement intéressés à ce nouveau code libéré, annonçant immédiatement que le travail sur iowolfet et iortcw commençait. Cependant, si la base de code est très similaire, il existe une cruciale différence qui n’a rien à voir avec la technique, mais relève d’une question juridique : le moteur de Quake 3 a en effet été publié à l’origine sous licence GPLv2, tandis que les nouveaux moteurs sont sous licence GPLv3.

En d’autres termes, il n’était pas possible de transférer les améliorations du moteur iowolfet dans le code de ioquake3, bien plus avancé et plus propre sur de nombreux points grâce au travail apporté sur plusieurs années. L’unique solution consistait ainsi à transférer dans iowolfet les améliorations déjà faites dans ioquake3. Cependant, comme personne n’aime faire le travail deux fois, et à cause de possibles ambiguïtés juridiques liées à certaines parties de code dans ioquake3 qui étaient à l’origine sous GPLv2 uniquement, les dépôts iowolfet et iortcw d’Icculus ont végété dans leur coin, sans modifications notables.

Mais différents projets ont surgi à de nombreux endroits à travers le web. La plupart (sinon la totalité) d’entre eux ne se souciaient pas vraiment de mélanger du code GPLv2 et GPLv3. En pratique, personne ne viendra faire une réclamation légale de toute façon… probablement.

Les tentatives d’amélioration

Voici une vue d’ensemble des principaux projets qui ont vu le jour :

  • wolfet-merge était une tentative pour inclure les fonctionalités spécifiques à Enemy Territory dans ioquake3, puisqu'ioquake3 disposait déjà d’une base de code bien plus propre. Ceci s’est révélé plus facile à dire qu’à faire, ce qui a conduit au projet suivant.

  • raedwulf-et a essayé de rafistoler les problèmes, en empruntant des améliorations à ioquake3. Ce projet a duré un certain temps et a été forké quelques fois. On peut dire qu'il a été assez réussi bien que quelques détails gênants ne soient pas réglés. Il est cependant maintenant mort.

  • ET:XreaL est une importante refonte d’Enemy Territory. Le fonctionnement interne du moteur est devenu proche de celui d’idTech 4 et le contenu du jeu a été modifié en partie pour obtenir des textures et effets visuels plus nets et brillants, afin de démontrer les capacités du moteur. Son auteur a depuis quitté le projet ET:Xreal pour travailler sur idTech 4.

  • Open Territory était un fork d’ET:XreaL qui était destiné à devenir ce que OpenArena est à ioquake3. Ce projet a été de courte durée aucun artiste n’ayant été trouvé.

  • OpenWolf essayait d’être à la fois comme ETXreaL et raedwulf-et en ayant deux moteurs de rendu : le moteur original OpenGL 1.3 et le moteur de rendu OpenGL 3.2 issu du projet Xreal. En y ajoutant la gestion de l’ancien et d’un nouveau format d’animation. Cependant, après la libération par GarageGames du moteur Torque3D sous licence MIT en septembre 2012, l’auteur d’OpenWolf a stoppé son projet et a commencé à travailler sur quelque chose de totalement nouveau avec cet autre moteur.

  • ET: Legacy, le présent projet, est à l’origine un fork de raedwulf-et. À un certain moment dans le développement, l’auteur de raedwulf-et a commencé à remplacer SDL en faveur de GLFW dans son projet. Tout le monde n’a pas apprécié ce changement et le code a été forké pour commencer une autre vie.

Ainsi, parmi les différentes tentatives d’amélioration les plus connues, seul le projet ET:Legacy est toujours actif et en constant développement depuis son lancement.

Tandis que les projets ET:XreaL et OpenWolf se concentraient surtout sur la modernisation du jeu avec un moteur graphique renouvelé et de nombreux effets modernes, ET:Legacy choisit au contraire de se focaliser avant tout sur la résolution de bogues gênants et sur les failles de sécurité en rétroportant les améliorations issues de ioquake3, tout en restant compatible binairement avec les serveurs et clients originaux du jeu, ainsi qu’avec ses mods.

En somme, ET:Legacy ambitionne de vous permettre de jouer à l’ancienne, tout simplement !

Le jeu réutilise les données du jeu d’origine, non libres, mais téléchargeables gratuitement.

Jouabilité

Aperçu de la jouabilité de Wolfenstein: Enemy Territory.

Un bunker anti-débarquement sur la carte « Seawall Battery ».

Deux équipes s’affrontent dans le contexte de la Seconde Guerre mondiale, les Alliés et les forces de l’Axe. Une équipe doit réaliser un ou plusieurs objectifs dans un temps imparti, tel que dynamiter un dépôt de carburant ou capturer un objet, tandis que l’autre équipe doit faire son possible pour empêcher cet objectif de se réaliser.

Ingénieur de l’Axe désamorçant une bombe posée par un ingénieur Allié.

Chaque joueur peut choisir entre cinq classes différentes, chacune proposant des armes et capacités de combat uniques. Les Covert Ops peuvent voler les uniformes des ennemis tombés au combat et effectuer une reconnaissance discrète derrière les lignes ennemies, tandis que les ingénieurs peuvent planter et désarmer des mines, ainsi que construire des structures sur le champ de bataille pour obtenir des avantages pour leur équipe. Les médecins assurent les soins et la réanimation des coéquipiers tombés, tandis que les Field Ops assurent le ravitaillement en munitions et utilisent leurs jumelles pour marquer les positions ennemies pour une attaque aérienne ou un pilonnage de batteries amies. Les soldats assurent l’essentiel du combat avec des armes lourdes, telles que mitrailleuses défensives, mortiers, lance-flammes ou lance-roquettes.

Les Alliés doivent escorter ce tank volé sur la carte « Gold Rush ».

La coordination de toutes les classes est ainsi nécessaire pour atteindre l’objectif et obtenir la victoire. Les joueurs éliminés réapparaissent sur la carte par vagues, évitant les temps d’attente trop longs.

Combat près d’un avant poste sur « Supply Depot », une carte additionnelle très jouée.

Lors de la partie, chaque joueur engendre des points d’expérience qui permettent d’améliorer son personnage, au fur et à mesure des combats et de ses actions. Ce jeu de tir subjectif dispose donc aussi d’éléments de jeu d’aventure.

La carte « Fuel Dump » sous la neige, d’autres missions se passent plutôt sous la chaleur du désert.

Six cartes différentes sont disponibles dans le jeu de base, mais plusieurs centaines d’autres sont disponibles et seront téléchargées automatiquement lors de la connexion aux serveurs.

Nouveautés depuis la version 2.60b

Contrairement à certains mods populaires qui ajoutent une grande quantités d’armes disponibles ou d’autres fonctionnalités modifiants en grande partie la jouabilité d’origine, le mod Legacy vise à conserver l’expérience authentique du jeu de base, simple et efficace.

Néanmoins, de nombreuses fonctionnalités et améliorations utiles ont été ajoutées. Parmi celles-ci, citons :

  • Nouveaux modèles 3D pour les armes, à des fins de cohérence historique : les alliés utilisent maintenant le couteau Ka-bar, le Browning MG et le bazooka en lieu et place de la dague allemande, de la mitrailleuse MG 42 et du Panzerfaust. Les joueurs de l’Axe ont quant à eux accès au Granatwerfer au lieu du mortier allié.

  • Équilibrage des armes : le M1 Garand allié dispose du même nombre de cartouches que la carabine K43, tandis que le temps de rechargement de cette dernière a été diminué.

  • Amélioration de la jouabilité : les joueurs qui se penchent au détour d’un mur sont maintenant visibles par tous, les déstabilisations dues aux explosions sont plus réalistes. Une icône s’affiche sur les cover ops déguisés amis ainsi que sur la carte, améliorant leur visibilité. Désormais, le porteur de l’objectif peut aussi être localisé rapidement sur la carte. La barre d’endurance est quant à elle remplacée par une barre de respiration restante lorsque le joueur est sous l’eau.

  • Amélioration de l’interface présentée au joueur : les polices floues font partie du passé et l’affichage tête haute (HUD) est maintenant complètement personnalisable. Des icônes additionnelles sont utilisées afin de rendre les messages d’évènements plus explicites, les objectifs sont maintenant visibles directement via une fenêtre pop-up. Le nom des joueurs est désormais affiché pour les spectateurs en « vue libre ».

  • Nouveau mode de jeu Map Voting, permettant de choisir la prochaine carte à jouer via un vote. Ce dernier mode s’ajoute aux modes existants Objective, Campaign, Stopwatch et Deathmatch.

  • Configuration « Compétition » : de nombreuxparamètres pour configurer finement une partie ont été ajoutés, les paramètres des clients peuvent être forcés à une certaine valeur par le serveur via un ensemble de règles prédéfinies. Ces fonctionnalités sont inspirées du mod propriétaire « etpro », qui n’est plus développé depuis 2006 et est incompatible avec ET:Legacy.

  • Extensibilité via des scripts Lua. En particulier, toute la suite d’administration des joueurs est codée en Lua et facilement extensible, au contraire des interfaces d’administration incluse dans les mods existants. Notons aussi l’ajout de la compatibilité avec la dernière version en développement du mod d’intelligence artificielle Omni-bot.

Bien sûr, le mod Legacy profite de la résolution de très nombreux bogues et d’autres ajustements variés. Entre autres, l’ensemble des patches issus du Project: Bug Fix ont été implémentés.

Et sur le plan technique, citons les améliorations suivantes :

  • Changements  : sous Windows, les profils utilisateurs et les données téléchargées sont maintenant séparées des données du logiciel, comme sous GNU/Linux. En outre, ET:Legacy utilise maintenant son propre dossier de configuration (~/.etlegacy sur GNU/Linux et \ETLegacy sous Windows), permettant l’installation distincte en paralèlle du Wolf:ET original. Les clients reçoivent le Message of The Day (MOTD) directement de la part de etlegacy.com, l’icône a été modifiée et, au passage, on peut noter qu’elle est désormais intégrée dans le binaire sous Windows.

  • Audio : raedwulf avait corrigé plusieurs problèmes de son et ajouté la gestion d’OpenAL. Le passage à la SDL permet une gestion ALSA native, évitant des bidouilles monstrueuses afin de rediriger le vieux système son OSS vers ALSA. On peut désormais couper le son lorsque le jeu est minimisé !

  • Rendu : le moteur permet désormais de rendre des polices TrueType ttf ou OpenType otf via Freetype, un bogue qui affectait le rendu de léger brouillard est corrigé, le client console a été porté sur ncurses et interprète les codes couleurs tout comme ioquake3 !

  • Internationalisation  : la possibilité de traduire le jeu a été ajoutée, et quelques traductions ont déjà été ajoutées, profitant du tout nouveau rendu des polices via Freetype. Un bogue qui affectait l’affectation des touches sur les claviers non-QWERTY a été corrigé.

  • Réseau : Le serveur différencie maintenant les joueurs humains des joueurs AI (visible pour les serveurs ET:Legacy dans le navigateur des serveurs), l’algorithme de Nagle pour les connexions TCP a été désactivé pour une plus grande réactivité.

  • Autres corrections en vrac  : quelques bogues trouvés avec des outils d’analyse statique ont été corrigés ainsi que des fuites mémoires (classique) ;-). Le bug du pointeur de souris retenu par la fenêtre en mode fenêtré a été contourné. Les serveurs maîtres recevaient toujours des paquets keep-alive même après déconnexion du joueur, c’est corrigé.

  • Compilation  : le système de compilation est passé de SCons au plus puissant « moteur de production » multiplate-forme CMake. Les bibliothèques SDL 2, libcurl et libjpeg6 utilisées sont désormais liées dynamiquement. La prise en charge de la libjpeg-turbo a également été ajoutée. Il est désormais possible de compiler ET:Legacy pour Windows depuis GNU/Linux grâce au système de compilation croisée MinGW.

  • Portabilité : Les routines assembleur i386 ont été remplacées par les routines équivalentes développées par le projet ioQuake3. ptitSeb, développeur très actif dans le projet OpenPandora (un projet communautaire de console de jeu de poche tournant sur GNU/Linux), a porté le moteur sur l’architecture ARM et a implémenté la gestion d’OpenGL ES afin de pouvoir rajouter ET:Legacy à la logithèque de Pandora ; BZsili a rajouté la prise en charge des systèmes AROS et MORPHOS ; enfin Jonathan Gray s’est occupé de la prise en charge d’OpenBSD.

Configurations prises en charge

ET:Legacy prend donc en charge les systèmes GNU/Linux, *BSD, OS X, Windows, AROS et MORPHOS, et les architectures x86, x86_64 et ARM.

Les binaires OS X sont compatibles seulement avec Mountain Lion (10.8) ou supérieur et les mods « Silent » et « Legacy ».

Seules les configurations 32 bits sont compatibles avec les serveurs Wolf:ET d’origine. Les mods les plus populaires sont pris en charge, à l’exception du mod « etpro » dont le module anti-cheat intégré dans la partie cliente vérifie explicitement la présence du binaire d’origine 2.60b.

Il est possible d’utiliser ET:Legacy en 64 bits, mais on ne pourra se connecter qu’aux serveurs proposant moteur et mod en version 64 bits (ET:Legacy avec Legacy mod pour l'instant). Le même problème se pose pour les architectures nouvellement supportées. Le module de joueurs IA Omni-bot a lui aussi été récemment porté en version 64 bits.

Le futur d’ET:Legacy

ET:Legacy proposera également un moteur openGL 3.2, mais contrairement à ET:XreaL l’ancien est toujours disponible. Dérivé en partie du travail fait sur ET:XreaL et OpenWolf, le code a été porté de C++ à du C pur pour ET:Legacy. Le travail sur le nouveau moteur avance petit à petit, mais est loin d’être terminé. Aussi, un set complet de nouvelles textures haute résolution pour accompagner le nouveau moteur est en cours d’élaboration.

Le code libéré d’Enemy Territory ne contient pas le code spécifique à l’anti-triche propriétaire PunkBuster, qui a de toute façon abandonné la prise en charge de Wolf:ET en 2011. Un anti-triche étant difficile a mettre en œuvre dans un code ouvert, ET:Legacy vise à mettre en place un système d’authentification libre, permettant de bannir les tricheurs plus aisément.

Puisque les données du jeu d’origine ne sont pas libres, ET:Legacy n’est pas par définition un jeu entièrement libre, posant une certaine difficulté d’empaquetage dans les distributions GNU/Linux. À plus long terme, le projet désire remplacer toutes les textures, modèles 3D et sons par des équivalents librement modifiables et distribuables. Se pose alors l’identité même d’Enemy Territory : que deviendrait l’authentique expérience Wolf:ET sans sa fameuse identité sonore ( « Mediiiiic ! ») ?

EasyGen est un outil permettant de générer facilement des terrains pour des cartes personnalisées. Le programme n’avait pas été mis à jour depuis plus de 10 ans (!), mais après la libération des sources (merci à Francesco Bancalà, son créateur, d’avoir pris en compte cette demande), ET:Legacy a l’intention d’ajouter ce générateur de cartes très utile dans sa boîte à outils.

 


 

Le code a déjà été adapté pour pouvoir le compiler sur Visual Studio (2008-2012), tandis que le système de bibliothèque d’images obsolète a été remplacé. La prochaine étape est de porter le code vers le framework Qt afin de permettre aux systèmes d’exploitation autres que Windows de l’utiliser. À l’avenir, des outils de conversion de modèles seront introduits afin de permettre une création de modèles plus aisée. Vous trouverez le dépôt de ce projet annexe d’ET:Legacy ici.

Enfin, il faut peut-être citer ET:Live, une tentative pour obtenir l’équivalent de Quake Live, à savoir ET jouable dans un navigateur. Ce projet parallèle à ET:Legacy et préparé par une équipe totalement distincte veut utiliser le code d’ET:Legacy comme base de travail. On peut cependant questionner la pertinence du projet, à l’heure où Quake Live repart sur une installation traditionnelle suite à l’abandon des greffons NPAPI par les navigateurs, ainsi que la synergie inexistante avec le projet amont.
En effet, ET:Live ressemble plus à une boîte noire, sans communication avec l’équipe d’ET:Legacy et, il semblerait, une duplication importante de travail, notamment par rapport aux améliorations graphiques du nouveau moteur de rendu en préparation d’ET:Legacy.

En conclusion

Quatre ans après sa libération, le code de Wolfenstein: Enemy Territory vit toujours au travers de l’actif projet ET:Legacy. En deux ans, le dépôt de code a vu défiler plus de 3 800 commits par 33 contributeurs différents, tandis que près de 400 tickets ont été fermés sur le bugtracker.

Le chemin est encore long, mais le projet propose des améliorations notables et attendues dans le moteur et ceci pour plusieurs plate-formes. Le mod Legacy proposé, quand à lui, a su repartir d’un code plus ancien que ses alternatives propriétaires existantes et se remettre à niveau, afin d'offrir une jouabilité plaisante et sous code libre.

Parce que c’est du code libre et que c’est facile (et que ça ne coûte pas cher de demander  :p), notons encore que le développement d’ET:Legacy est un effort collaboratif fait d’une manière ouverte, transparente et conviviale. Si vous avez l’âme d’un codeur, d’un artiste ou d’un traducteur : engagez-vous ! Tout le monde est le bienvenu ! Vous trouverez plus d’information sur le site du projet et sur le canal IRC #etlegacy sur Freenode.

Et pour tester ?

Depuis la quatrième Release Candidate de juin dernier, de nombreuses modifications ont été apportées. En particulier, le projet a décidé de fusionner sa branche SDL 2, en test depuis de nombreux mois, permettant de corriger un grand nombre de bogues présents dans la branche principale avec la version SDL 1.2. En outre, un important travail au niveau du nouveau moteur de rendu a été effectué, même s'il ne sera sans doute pas compilé par défaut dans la première version stable officielle.

La version stable ne sera donc probablement pas publiée tout de suite. En attendant celle-ci, vous pouvez bien entendu tester le projet en installant l’un de ces paquets :

  • Version officielle (RC4) : la dernière Release Candidate disponible, compilée statiquement et compatible avec n’importe quelle distribution. Notez que cette version 32 bits nécessite les bibliothèques graphiques et audio 32 bits adéquates si vous utilisez un système 64 bits.

  • Paquets expérimentaux (RC4) : des paquets pour les distributions majeures sont disponibles. Attention, ces paquets ne sont pour le moment proposés qu’en version 32 bits et 64 bits. Si vous désirez jouer sur les serveurs existants :

    • utilisateurs d’openSUSE et de Fedora 64 bits, veillez à installer la version i586 ;
    • utilisateurs de Debian et d’Ubuntu 64 bits, installez plutôt la version officielle ci-dessus ;
    • utilisateurs d’Arch Linux 64 bits, installez plutôt le paquet etlegacy disponible dans l’AUR après avoir lu le PKGBUILD.

Notez également qu'en raison de restrictions légales, les données requises ne peuvent pas être incluses dans les paquets proposés. Mais vous pouvez les télécharger gratuitement et légalement sur le site officiel de Splash Damage. Alternativement, vous pouvez utiliser ce script pour récupérer les fichiers nécessaires automatiquement.

Vous avez besoin des fichiers pak0.pk3, pak1.pk3 et pak2.pk3 qui doivent être placés dans ~/.etlegacy/etmain ou dans le répertoire etmain situé dans le même répertoire que le binaire etl. Cette étape est faite automatiquement pour les utilisateurs d’Arch Linux.

Pour les plus courageux d’entre vous qui voudraient utiliser la toute dernière version de développement, vous trouverez les instructions de compilation dans le dépôt GitHub du projet ; les utilisateurs d’Arch Linux pourront installer le paquet etlegacy-git disponible dans l’AUR.

Merci tout particulièrement à Spyhawk qui a coécrit cette dépêche, ainsi qu’à M5oul et BAud pour leurs précieuses et minutieuses corrections.

Télécharger ce contenu au format Epub

Lire les commentaires

Questionnaire à l'intention des associations pour connaître leurs pratiques numériques

14 novembre, 2014 - 07:33

Le groupe de travail Libre Association de l'association April lance un nouveau questionnaire à l'intention des associations sur leurs pratiques numériques.

Le but est de mieux connaître les besoins spécifiques des associations en matière d'informatique de manière à pouvoir leur proposer des logiciels libres qui répondent à leurs besoins notamment via le "Guide Libre Association".

Suivez le lien ci-dessous pour répondre à ce questionnaire et le relayer auprès d'associations que vous connaissez.

Télécharger ce contenu au format Epub

Lire les commentaires

Weboob atteint la maturité

14 novembre, 2014 - 06:46

Weboob (Web Outside Of Browsers) est une bibliothèque et un ensemble d'applications interagissant avec des sites Web. Plus de quatre ans après le premier commit, nous avons le plaisir d'annoncer la sortie de la première version stable de Weboob !

En plus de présenter les nouveautés, cette dépêche profite de cette version pour faire un rapide retour sur l'historique et l'évolution du projet.

Sommaire Le nouveau browser

Comme nous l'expliquions dans la dépêche précédente, cette annonce de première version majeure est l'aboutissement de notre projet de refactorisation de code. Afin de rendre plus aisé le support de sites web par Weboob, le projet fournit de nombreux outils, dont une bibliothèque qui simule le fonctionnement d'un navigateur. Depuis quelques versions, cette bibliothèque a été réécrite sous le nom de "Browser2" puis tout simplement "le nouveau browser" (navigateur). Celui-ci est prêt à l'utilisation, et suffisamment abouti pour que son API reste stable durant la durée de vie de la branche 1.x. Nous nous autorisons des ajouts, mais l'existant ne sera pas modifié.

Ce nouveau Browser et les outils associés sont l'une des forces du projet : le scraping (extraction de contenu) est souvent une tâche répétitive, mais Weboob fait tout pour atténuer ce problème. Nous pensons que le projet a maintenant atteint un niveau de maturité lui permettant d'honorer cette promesse. Avec tous les outils du browser (ListElement, filtres, pagination, formulaires, etc.), un module peut ne prendre que quelques lignes de code.

Retour sur l'origine du projet

En 2008, un petit script Python utilisant mechanize et html5lib a vu le jour, écrit par un utilisateur d'un site de rencontres français bien connu, et dont l'objet était de remplacer l'interface web sur fond rose par son MUA pour échanger avec ses contacts. Très vite, il renouvela l'expérience avec un autre script pour récupérer automatiquement son solde et ses relevés depuis le site de sa banque.

Lorsque, début 2010, il lança le projet dlfp2mail, il se rendit compte de la possibilité d'appliquer la méthode à bon nombre d'autres sites web, et chercha à factoriser le code au sein d'un même et unique projet. Weboob était né.

Ainsi que ceux qui jasent sur le nom l'ignorent, il était initialement prévu de l'appeler woob. Ce n'est que lorsqu'on constata qu'il existait déjà un autre logiciel portait déjà ce nom qu'il fut décidé de le renommer weboob.

Les concepts fondateurs furent rapidement posés :

  • séparation entre les modules interagissant avec les sites et les applications ;
  • système de capacités que chaque module peut implémenter ;
  • bibliothèque utilisable par des applications tierces.

Le projet s'est depuis enrichi d'un navigateur puissant (remplaçant mechanize par requests) pour le parcours et l'analyse lexicale des pages, d'un système de dépôts pour les modules, de classes helper pour résoudre les claviers virtuels, etc.

37 capacités

Les capacités sont des interfaces permettant aux applications d'interagir avec les sites Web, de façon unifiée. Par exemple, la capacité bancaire offre la possibilité de lister les comptes, obtenir l'historique des transactions, faire des virements, etc. De leur côté, les modules implémentent une ou plusieurs de ces capacités (parfois partiellement uniquement, notamment si le site n'a pas la fonctionnalité). Les applications ont donc des interfaces unifiées et stables pour interagir avec tous les sites d'une catégorie, et non pas avec un seul site bien particulier.

C'est une grande différence avec les nombreux scripts d'extraction de contenu individuels pouvant se trouver sur Internet : on accède à tous les sites permettant de télécharger des vidéos d'une manière unique, à tous les sites bancaires en une seule requête, etc. La diversité des fonctionnalités des sites Web se retrouve en partie chez Weboob : nous proposons actuellement 37 capacités différentes, à comparer avec les 172 sites dont Weboob permet l'accès.

Utilisations tierces

Le projet Weboob fournit des applications basiques pour interagir avec les sites. Ces applications permettent d'effectuer des requêtes complexes (avec notamment un système de filtres sur les résultats), et permettent déjà de nombreuses interactions. Notre objectif n'est cependant pas de remplacer les applications existantes : nous n'allons pas créer un nouveau gestionnaire financier personnel dans Weboob. De très bons logiciels libres existent déjà pour celà. De même pour les lecteurs vidéos.

Nous mettons donc l'accent sur l'export des données en formats utilisables par tous, ainsi que sur l'utilisation de Weboob en tant que bibliothèque dans les projets. Cette méthode a particulièrement bien fonctionné pour les applications bancaires, mais aussi pour des usages plus inattendus. On peut citer à la fois des entreprises (Cozycloud, Budget Insight, Winancial) que des projets communautaires : Skrooge, Kmymoney (nous essayons de faire intégrer un patch upstream), GTranslate, Gnome Shell, un plugin pour XMBC/Kodi

Nouveautés depuis la 0.j

Pour revenir sur les actualités de la 1.0, le temps de développement de cette version a été assez court. Notre objectif (réussi) étant une migration de la version 1.0 dans Debian testing avant le gel. Il n'y a donc eu que six (intensives) semaines entre la 0.j et la version 1.0.

On peut cependant noter que la capacité permettant de consulter des annonces immobilières (CapHousing) a été améliorée. Les annonces immobilières du site Leboncoin ont notamment été ajoutées.

Du côté des applications, une nouvelle option de filtre (LIMIT) est disponible en ligne de commande. Elle permet de limiter la profondeur des recherches des requêtes utilisant le moteur de condition.

Concernant les modules, on peut noter un second module pour une banque américaine (Citibank). Du côté plus francophone, des modules pour suivre l'agenda du libre, pour suivre les marées et une nouvelle application de rencontres.

Enfin, sous le capot, nous avons profondément changé les API et les noms internes des objets. Nous voulions le faire pour présenter une interface cohérente pour la version 1.0. Dans ce cadre, l'utilisation de l'ancien Browser est désormais signalée comme obsolète. Un nouveau niveau de debug fait son apparition pour le nouveau Browser, permettant un suivi fin des appels sur les filtres.

Communauté

Depuis quatre ans, ce sont pas moins de 88 contributeurs qui ont participé à Weboob :

Adrien Kunysz, Ahmed Boussadia, Alexandre Bonhomme, Alexandre Flament, Alexandre Franke, Alexandre Lissy, Antoine, Arno Renevier, Benjamin Carton, Benjamin Drieu, BohwaZ, Camille Baldock, Camille Dehecq, Cedric Defortis, Christophe Benz, Christophe Gouiran, Christophe Lampin, Clément Schreiner, Clément Calmels, Damien Cassou, David Jeanneteau, Erwan Jahier, Etienne Carriere, Fabien Grumelard, Florent Fourcot, François D., François Revol, Gabriel Serme, Gabriel Kerneis, Gilles Quenot, Grmbl Frechneu, Hervé Werner, Jean-Benoist Leger, Jean-Christophe Dubacq, Jean-Philippe Dutrève, Jerem, Jeremy Monnet, Jérôme Poisson, Jocelyn Jaubert, Johann Broudin, John Morrow, Julia Leven, Julien Hebert, Julien Veyssier, Juliette Stehlé, Kevin Pouget, Laurent Bachelier, Laurent Dufréchou, Laurent George, Loic Bontonou, Luc Didry, Lucas Nussbaum, Lucien Loiseau, Mathieu Jourdan, Mathieu Lordon, Matthieu Rakotojaona, Michael Scherer, Nicolas Duhamel, Noé Rubinstein, Oleg Plakhotniuk, Olivier, Olivier Schwander, Philippe Fremy, Pierre Mazière, Raphaël Rigo, Richard Genoud, Roger Philibert, Romain Bignon, Romain Garbage, Ryan Nowakowski, Samuel Loury, Sébastien Monel, Simon Murail, Stefano Zacchiroli, Tanguy Ortolo, Tens San, Thomas Lecavelier, Vicnet, Vincent A, Vincent Paredes, Vincent Texier, Willy Villard, Xavier Guerrin, Yann Rouillard, ianux, leto, theocrite

Nous remercions également pour cette version les étudiants de l'Université de Lille 1, qui ont ajouté des tests dans le cadre d'un projet d'étude.

Weboob est un projet qui grossit et qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer, que vous connaissiez le Python ou pas, n’hésitez pas à contribuer.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de la v1.2 de Zeste de Savoir

13 novembre, 2014 - 21:30

L'idée de Zeste de Savoir s'est construite sur un but précis : promouvoir le partage de connaissances à travers des ressources pédagogiques gratuites et de préférence sous licence libre. Pour ce faire, il nous fallait un outil, et cet outil il nous fallait le créer.

Sous le nom Zeste de Savoir se regroupent en réalité trois entités :

  • Le logiciel « Zeste de Savoir » qui est une plate-forme web de partage de contenu et d'entraide (tutoriels, articles, forums, etc.) ;
  • Une instance de ce logiciel, zestedesavoir.com, dont le but est de promouvoir le partage de connaissances à travers des ressources pédagogiques gratuites et de préférence sous licence libre ;
  • Et l'association « Zeste de Savoir », qui est une association de loi 1901 française créée dans le but de gérer tout ce petit monde.

Cette dépêche traite principalement de la sortie de la v1.2 du logiciel, mais touche quelques mots du site et de l'association.

Sommaire Le logiciel Zeste de Savoir But

L'idée de Zeste de savoir s'est construite sur un but précis : promouvoir le partage de connaissances à travers des ressources pédagogiques gratuites et de préférence sous licence libre. Pour ce faire, il nous fallait un outil, et cet outil il nous fallait le créer.

Les besoins fonctionnels étaient assez clairs dès le début : l'outil doit permettre, au moins dans sa version de base, de :

  • créer des contenus pédagogiques et les publier sous divers formats (pages web au moins, puis PDF, formats pour liseuses, etc.) ;
  • gérer des contenus de types et surtout de tailles variés, pour accepter de courtes introductions comme des cours complets ;
  • permettre la relecture et la validation de ces contenus ;
  • permettre aux lecteurs de communiquer et de s'entre-aider entre eux, via des outils complets comme des commentaires sur les ressources, des forums pour poser des questions et un système de messagerie privée ;
  • et bien sûr d'administrer tout ceci.

Le partage est une notion de base dans le projet : si elle s'applique aux connaissances que l'on veut diffuser, la suite naturelle est donc que les outils que l'on développe à cette fin soient, eux aussi, partagés. Et quoi de mieux que le logiciel libre pour ce faire ?

Nous aurions pu céder aux chant des sirènes en développant un projet from scratch dans l'une des moultes technologies hype du moment. Cependant il existait déjà une base de code qui nous permettait de démarrer : Progdupeupl. Nous devions cependant l'adapter, ce que la licence (GPL v3 au moment du fork) nous a permis. Et grand bien nous en a pris, car malgré la présence de cette base conséquence, le développement ne fut pas de la petite bière !

Technique

Concernant l'aspect technique, nous cherchions des technologies éprouvées, open-source, et que nous pourrions nous approprier sans trop de problèmes. Progdupeupl est venu avec son lot de technologies propres, que nous avons conservé. Ainsi donc :

  • Le site lui-même est en Python 2.7, sous Django 1.6.
  • Puisque personne n'aime réinventer la roue, tout le système d'historique des contenus est géré avec Git. Pour l'instant sous-utilisé, il nous garantit une grande souplesse dans l'avenir.
  • La génération de PDF se fait avec pandoc.
  • Il nous fallait un langage compréhensible pour rédiger ; nous nous sommes tournés vers Markdown, dont il existe une version pour Python.
  • Quant à la base de données et au serveur HTTP, Zeste de Savoir n'impose aucune autre contrainte que celles de Django.

D'autre part, le libre, ce n'est pas que « se servir et profiter ». C'est aussi faire vivre des logiciels.

C'est pourquoi nous n'avons pas hésiter à forker certains projets pour les adapter à nos besoins spécifiques (python-markdown, GitPython), à faire remonter des correctifs et améliorations dans les upstreams (django-munin) et à signaler des bugs (Django).

Nouveautés de la v1.1 et de la v1.2

La v1.0 était la première version stable contenant toutes les fonctionnalités que nous pensions indispensables.

Le but de la v1.1 était à la fois de simplifier la tâche des auteurs et de stabiliser encore mieux le code. En ce sens, elle a apporté — en plus des inévitables petites améliorations et corrections de bugs :

  • la possibilité de modifier un tutoriel hors-ligne et de l'importer ;
  • l'import de plusieurs images dans la galerie en un clic ;
  • la création d'un fil de discussion automatique pour les tutoriels en bêta ;
  • la fonctionnalité de désinscription (indispensable pour ne pas nécessiter des dizaines d'opérations manuelles pour les administrateurs) ;
  • beaucoup de nettoyage de code. Eh oui, déjà : Zeste de Savoir a été développé par pas mal de monde, sans vraiment de structure au début. La v1.1 quant à elle respecte la PEP8.

Comme beaucoup de ces modifications sont visibles pour l'utilisateur, la sortie de cette release a été l'occasion de calculer quelques statistiques à son sujet.

Sortie à quelques jours du premier anniversaire du premier commit, la v1.2, quant à elle, a apporté surtout des petites améliorations, avec toutefois deux points qui sortent du lot :

  • Une amélioration très visible : les tags sont maintenant affichés devant les titres, ce qui devrait les rendre plus utiles en améliorant leur visibilité—en réalité les premiers retours laissent entendre qu'ils sont maintenant trop visibles.
  • Une amélioration qui devrait vous intéresser : le code source est maintenant bien plus open source. C'est-à-dire qu'on a fait le ménage pour éjecter toute référence à « Zeste de Savoir » en dur dans le code. Donc, si vous désirez installer votre propre instance de la plate-forme, vous n'avez qu'à installer le code et modifier les valeurs dans le paramètre ZDS_APP pour avoir un site à votre nom !
Et dans le futur ?

Le futur, c'est la communauté qui va le décider ! Plus exactement, la communauté du site Zeste de Savoir, grâce à un processus complètement repiqué sur Python et ses PEP : les ZEP.

Les prochaines améliorations à arriver devraient être :

  • une refonte de la page d'accueil ;
  • une nouvelle gestion du markdown à l'export ;
  • une API ;
  • une nouvelle gestion plus souple des contenus ;
  • un système de mise en relation des auteurs donnant une vision globale des tutos en cours de rédaction.

D'autre part, les sujets plus légers sont traités via des tickets Github.

Le site zestedesavoir.com

Les membres fondateurs de zestedesavoir.com sont tous des anciens membres très actifs du feu Site du Zéro, un site de diffusion de connaissances et d'entraide. À la suite du changement de politique de ce dernier, ils ont décidé de recréer une plateforme sur laquelle ils pourraient à nouveau s'entraider et partager convenablement leurs connaissances et surtout retrouver l'esprit communautaire qu'ils aimaient tant.

Contrairement au site dont il est inspiré, zestedesavoir.com vise un public et surtout un contenu beaucoup plus large, dans le thème (sciences « dures » ou non, musique, préparation d'une tarte aux myrtilles, … en fait tout type de savoir pouvant se transmettre) et dans la forme (tutoriels, articles, sans doute tribunes libres dans le futur, …).

Le site a été ouvert officiellement le 21 juillet 2014.

L'association

Le projet lancé, il restait deux grandes questions : comment le gérer, et comment le financer ?

Il n'était pas question d'avoir un dictateur qui impose des choix à tout le monde ; pas plus qu'il était question de mettre la moindre publicité sur le site.

Le meilleur moyen que nous avons trouvé pour garantir cette indépendance de gestion et de financement était de créer une association pour ce faire. Et ainsi fut fait. Cette association n'existe que pour gérer le site et le code ; elle est ouverte à toute personne inscrite au site et n'apporte aucun droit spécifique sur le site ou sur le code. Elle n'a même pas de forum privé : le forum de l'association est lui-même public !

Télécharger ce contenu au format Epub

Lire les commentaires

GNU Emacs 24.4

13 novembre, 2014 - 08:41

D'après Wikipédia : « Emacs est une famille d'éditeurs de texte disposant d'un ensemble extensible de fonctionnalités et qui est très populaire parmi les programmeurs et plus généralement les personnes ayant des compétences techniques sur les ordinateurs. ».

La version 24.4 de cet éditeur est sortie le 20 octobre 2014.

Sommaire Navigateur web EWW

Eww (pour Emacs Web Wowser) est un navigateur web intégré à Emacs 24.4. Un simple appel à M-x eww le lance. Il gère le rendu des images, la plupart des balises HTML et quelques règles CSS. Il est ainsi adapté à la lecture de texte.

eww a été fait par Lars Magne Ingebrigtsen, le créateur de Gnus, qui explique ses motivations sur son blog.

Une nouvelle implémentation des rectangles

Emacs avait déjà une fonctionnalité native de sélection en bloc (via le raccourci C-x r d), mais qui n'affichait pas le rectangle sélectionné. Il existait également une autre implémentation dans Cua. Enfin, le mode evil offrait, bien entendu, le mode visuel « bloc » propre à VIM.

Le nouveau rectangle-mark-mode introduit un affichage clair de la sélection rectangulaire pour tous les modes. Son raccourci par défaut : C-x SPC.

Principales valeurs par défaut modifiées electric-indent-mode

Un nouveau mode mineur est apparu avec Emacs 24.1 : electric-indent-mode. Ce mode permet d'indenter automatiquement lors de l'appui de certaines touches (par exemple Entrée). Il est maintenant activé par défaut.

uniquify (nom des buffers unique)

Lorsque l'on ouvre plusieurs fichiers du même nom (par exemple un Makefile), Emacs renomme les buffers à la volée en Makefile, Makefile<2>, Makefile<3>, etc.
La bibliothèque uniquify permet de changer ce comportement et de personnaliser le renommage. Elle est maintenant activée par défaut.

Le nouveau comportement par défaut est de renommer le buffer en incluant le nom du répertoire. On obtient alors Makefile<dir1>, Makefile<dir2>, Makefile<dir3>, etc.

Ce comportement est personnalisable en jouant sur la variable uniquify-buffer-name-style. Par exemple :

(setq uniquify-buffer-name-style 'post-forward uniquify-separator ":")

donnera Makefile:dir1, Makefile:dir2

Il est possible d'avoir le même comportement avec d'anciennes versions :

(require 'uniquify) (setq uniquify-buffer-name-style 'post-forward-angle-brackets) Nouvelles fonctionnalités Fenêtre plein écran ou maximisé

Deux nouvelles fonctions voient le jour pour respectivement mettre une fenêtre Emacs en plein écran : toggle-frame-fullscreen (F11) ou la maximiser : toggle-frame-maximized (M-F10).
Il est dès lors possible d'avoir le même comportement quel que soit le système d'exploitation. Utilisées conjointement avec menu-bar-mode et tool-bar-mode, vous pouvez enfin avoir tout votre écran disponible pour éditer du texte.

Nouveau mode pour les buffers Messages (messages-buffer-mode)

Les buffers Messages sont maintenant créés dans le mode messages-buffer-mode.
Dans la pratique, ces buffers sont en lecture seule et des raccourcis claviers sont disponibles. Par exemple, la touche q permet de quitter le buffer.

Possibilité de se connecter à un appareil Android via Tramp

TRAMP est un outil pour accéder et éditer des fichiers distants de manière transparente. L'un des cas d'utilisations classiques est l'édition de fichiers distants via ssh.
Une nouvelle méthode de connexion apparaît : adb (Android Debug Bridge). Il est dorénavant possible d'accéder à des appareils Android.

Suppression des lignes en double

La commande delete-duplicate-line supprime les lignes en double dans le texte sélectionné.

Superword-mode et subword-mode

La navigation dans Emacs peut se faire par « entité ». L'entité la plus simple est le caractère. Avec les flèches, on pourra donc avancer d'un caractère ou reculer d'un caractère. Mais on peut aussi naviguer par mots, par phrases, par paragraphes, par blocs de code, par pages, …

Pour réaliser cela, Emacs classe les caractères par catégories. Par exemple, une espace est dans la catégorie espace qui sépare des mots. Mais le tiret bas _ fait aussi partie d'une catégorie qui sépare les mots. Pour passer le mot composé fonction_test, il faut donc avancer de deux mots. Si tous les noms de fonction sont séparés par des tirets bas, il peut être plus simple de traiter le nom de la fonction comme un seul mot. C'est ce que superword-mode se charge de faire.

Au contraire, pour les noms en CamelCase, il peut être utile de séparer les mots en fonction des majuscules. Cette fois, c'est subword-mode qui s'en charge.

Gain ou perte de focus d'un cadre

Deux nouveaux hooks sont introduits : focus-in-hook et focus-out-hook. Ils donnent la possibilité d'automatiser des opérations lors du gain ou de la perte de focus d'un cadre. On pourra par exemple, ajouter une opération de sauvegarde automatique de buffers à la perte du focus (exemple tiré de emacsredux.com) :

(add-hook 'focus-out-hook 'save-buffer) ;; sauvegarder le buffer courant (add-hook 'focus-out-hook (lambda () (save-some-buffers t))) ;; sauvegarder tous les buffers Visionneuse d'image (image-mode)

Dès que l'on charge une image dans Emacs, le mode image-mode se charge automatiquement pour la visualiser. L'affichage de son code se fait depuis C-c C-c. Emacs 24.4 introduit de nouvelles possibilités :

  • Les touches p et n affichent respectivement l'image précédente et suivante dans le même répertoire ;
  • f et b affichent respectivement l'image (frame) précédente et suivante dans une animation (par exemple un gif). F affiche une frame spécifique.
Autres nouveautés

Il y a bien évidemment d'autres nouveautés intéressantes :

  • Les menus apparaissent maintenant en mode console (terminal) et peuvent maintenant s'ouvrir avec menu-bar-open ou F10 ;
  • Les moniteurs multiples sont gérés, à l'aide des commandes display-monitor-attributes-list et frame-monitor-attributes ;
  • Beaucoup de packages qui installaient des choses dans ~/.foo le font maintenant dans ~/.emacs.d/foo ;
  • js-mode (JavaScript) a été amélioré du côté de l'indentation, des arrays notamment ;
  • Emacs gère maintenant les notification du FS (système de fichiers) relatives à l'état des fichiers telles que création, modification et effacement.
Migration de Bazaar à git

La 24.4 marque aussi la fin de la gestion du code d'Emacs sous Bazaar. Après plusieurs discussions sur la liste de diffusion des développeurs, il a bien fallu se rendre à l'évidence que Bazaar était un projet mort et qu'il posait plus du soucis qu'il n'en résolvait.

Elpa, le dépôt d'extensions avait déjà migré à git en 2013 suite à un bogue dans Bazaar rapporté en octobre 2011, mais jamais résolu.

Il a donc été décidé de migrer à git après la 24.4. C'est Eric S. Raymond qui s'est chargé des scripts de migration — ce qui n'a pas été une sinécure, car la conversion dure environ 10 heures et contient une liste de corrections manuelles pour garder au maximum l'historique du code.

Celui-ci contient tout de même 135 000 changements (pour comparaison, l'historique du noyau linux contient 480 000 changements), le premier datant du 18 avril 1985.

Changement de numérotation

GNU Emacs 24.4 est la dernière version de la série 24. La prochaine sera la 25.1. Par ailleurs, à l'avenir, les versions du type « .N » correspondront à des corrections de bogues et les versions majeures à la sortie de nouvelles fonctionnalités. Voir l'annonce sur la liste de diffusion.

Pour entrevoir le futur, la 25.1 a dans les cartons beaucoup de nouvelles fonctionnalités intéressantes. On pourra citer par exemple la concurrence dans la machine virtuelle Lisp, le chargement dynamique de bibliothèques, ou encore l'ajout d'espaces de noms en emacs-lisp.

Télécharger ce contenu au format Epub

Lire les commentaires

Sixième rendez-vous Python nantais mardi 18 novembre 2014

12 novembre, 2014 - 21:25

Le sixième rendez-vous pour amateurs du langage Python (ou curieux de la bête) aura lieu le 18 novembre à partir de 19h à la Cantine du numérique de Nantes (11 Impasse Juton, 44000 Nantes).

Nous vous proposerons deux présentations :

  • IPython & dataviz : quand on pense cartographie, certains pensent logiciels bureautiques, d'autres en ligne, ici nous montrerons qu'il existe d'autres voies en particulier pour l'analyse de données. Ainsi, nous vous proposons de voir l'utilisation de IPython pour découvrir des données et les cartographier. Nous pourrons ainsi introduire quelques bibliothèques pour l'analyse statistique, la manipulation de données et les représentation cartographiques.
  • Pelican : à contre-courant des frameworks web « full-stack », complexes et lourds, se trouve Pelican, et les générateurs de sites statiques. Pourquoi opter pour une approche si minimaliste ? Que peut-on en tirer ? Découvrez l’utilisation de Pelican, ses forces, ses limites, et comment les contourner.

Vous êtes bienvenus !

Télécharger ce contenu au format Epub

Lire les commentaires

Mons, le 20 novembre 2014 : aperçu du développement d’applications Android

12 novembre, 2014 - 13:34

Ce jeudi 20 novembre 2014 à 19h se déroulera la 33ème séance montoise des Jeudis du Libre de Belgique

Aperçu du développement d'applications Android

Nul besoin de présenter Android, il est (presque) partout. Mais que se cache-t-il derrière ce système d’exploitation ? Quelles sont les composantes d’une application Android ? Quelles sont les limites imposées aux développeurs ? François Stephany (Ta Mère SCRL) vous propose de faire un petit tour d’horizon de la plateforme. La présentation sera assez technique; il est donc conseillé d’avoir un minimum d’expérience dans les systèmes informatiques et/ou la programmation pour pouvoir suivre.

  • Thématique : Internet|Programmation|Mobile
  • Public : Développeurs web|programmeurs|étudiants|…
  • Lieu de cette séance : HEPH Condorcet, Chemin du Champ de Mars, 15 – 7000 Mons – Auditorium 2 situé au rez-de-chaussée (cf. ce plan sur le site d’Openstreetmap; ATTENTION, l’entrée est peu visible de la voie principale, elle se trouve dans l’angle formé par un très grand parking).

La participation sera gratuite et ne nécessitera que votre inscription nominative, de préférence préalable, ou à l’entrée de la séance. La séance sera suivie d’un verre de l’amitié.

Les Jeudis du Libre se veulent des espaces d’échanges autour de thématiques des Logiciels Libres. Les rencontres montoises se déroulent chaque troisième jeudi du mois, et sont organisées dans des locaux et en collaboration avec des Hautes Écoles et Facultés Universitaires du Pôle Hainuyer d’enseignement supérieur impliquées dans les formations d’informaticiens (UMONS, HEH et Condorcet), et avec le concours de l’A.S.B.L. LoLiGrUB, active dans la promotion des logiciels libres.

Les Jeudis du Libre à Mons bénéficient aussi du soutien de nos partenaires : Normation, OpenSides, MeaWeb, NextLab, Phonoid et Creative Monkeys.

Si vous êtes intéressé(e) par ce cycle mensuel, n’hésitez pas à consulter l’agenda et à vous inscrire sur la liste de diffusion afin de recevoir systématiquement les annonces.

Télécharger ce contenu au format Epub

Lire les commentaires

Semaine mondiale de l’entrepreneuriat et logiciel libre le 19 novembre 2014 à Nanterre

12 novembre, 2014 - 10:39

Maarch s’associe à Jokkolabs Nanterre, l’espace de co-working tourné vers l’action et l’innovation dédié aux entrepreneurs et la Communauté d’Agglomération du Mont-Valérien, pour fêter l’entrepreneuriat autour d’événements organisés pour montrer la diversité des talents et des initiatives des entrepreneurs, dans les secteurs traditionnels ou innovants, à l’instar de 150 pays.

Le thème de cette édition 2014 est « Nanterre, Rueil-Malmaison, Suresnes, territoire innovant et entreprenant ».

Mercredi 19 novembre, Jokkolabs Nanterre accueillera tout l’après-midi des événements autour de l’entrepreneuriat. Le nombre de places étant limité, n’hésitez pas à vous inscrire dès maintenant.

En deuxieme partie de dépêche, le programme de la journée du mercredi 19 novembre 2014 sur le thème du logiciel libre.

Programme : De 18h00 à 18h45 : comment créer de la valeur avec le libre ?
  • Quels sont les enjeux du logiciel libre dans l’économie de l’immatériel ?
  • Accélérer l’innovation avec le libre ;
  • Les communautés, acteurs incontournables du développement.
Intervenants :
  • Laurent Seguin, Président de l’AFUL (Association francophone des utilisateurs de logiciel libre) ;
  • Cyril Vazquez, Responsable R&D, Maarch.
De 19h00 à 19h45 : créer un modèle entrepreneurial durable issu de l’open source
  • Comment monter une offre professionnelle vraiment libre et pérenne ?
  • Est-ce possible, alors que les besoins de financement sont très importants ?

Maarch défriche ce modèle depuis maintenant 10 ans, c’est l’occasion de revenir sur le passé et revenir sur ce qui a bien fonctionné… ou pas !

Intervenants :
  • Jean-Louis Ercolani, Président de Maarch ;
  • Thomas Noël, Entr’Ouvert.
À propos de Jokkolabs

Issue de l’univers de l’open source et de la culture libre, inspirée par une alchimie mêlant « techlabs », « innovation hub », espace de coworking, incubateur et « think tank ». Jokkolabs organise des événements liés à la culture libre (open-source, open-innovation, open-économie, etc.) en direction de la communauté en vue d’être porteur de l’innovation technologique et sociale sur le territoire. Dans le cadre de la semaine internationale de l’entrepreneuriat, Jokkolabs Nanterre consacre 2 conférences aux entrepreneurs du libre en se posant tout d’abord une question sur la façon de créer de la valeur avec le logiciel libre puis en se demandant comment créer un modèle entrepreneurial durable issu de l’open source. Des entrepreneurs du libre ont accepté de répondre à ces questions.

Télécharger ce contenu au format Epub

Lire les commentaires

Retour sur l'Open World Forum 2014 #OWF14

12 novembre, 2014 - 09:16

La 7e édition de l'Open World Forum (aka OWF) a eu lieu les jeudi 30 et vendredi 31 octobre derniers; la spécificité de l'événement est d'être un des rares forums à regrouper sur les mêmes sujets les costumes-cravates et les jeans-T-shirt au travers de trois univers : Think / Code / Experiment.

Think est dédié à la vision (décideurs), Code à la technique (développeurs, admins, bidouilleurs, etc.), Experiment pour mettre les mains dans le cambouis (souder, manipuler, etc.).

L'équipe LinuxFr.org s'y est investie : président, vice président sur la partie Code, responsable du thème « gestion d'une communauté ou d'un projet », participation à la table ronde sur l'identité numérique et le droit à l'oubli, la table ronde « Les associations du libre, un combat quotidien » et parmi les conférenciers.

Quelques photos

Toutes les photos publiées par l'organisation sont sous licence CC By Sa 2.0. Les photos en haute qualité sont en cours de traitement.

Nÿco et Floxy s'entraînent sur le simulateur de visiteurs LinuxFr.org :

Quand le président parle, tout le monde écoute :

De l'ouverture et de l'horizontalitude :

Table ronde sur l'identité numérique et le droit à l'oubli :

Les 10 ans de Firefox :

Vidéos

Les vidéos sont en cours de mise en ligne. Et l'événement avait sa propre télé.

Quelques retours
  • Tristan Nitot : « Je tiens à féliciter tout l'équipe de l'Open World Forum pour une édition très réussie, et en particulier son président, Florent Zara, qui n'a pas soufflé une minute ces derniers mois ! Pour moi, c'était probablement la meilleure édition à ce jour… »
  • Jonathan Clarke : « Really impressed and pleased that two students came up to me to say they thought our #devops panel discussion was awesome @OpenWorldForum. » et sur le blog Normation « I feel this was a real success (…) we managed to talk culture and empathy and everyone there loved it. »
  • Plastic : « C'était vraiment un super événement, très bien organisé et avec des intervenants de qualités ! Dommage qu'il n'y ait pas eu plus de monde pour remplir les salles. »
  • Bruno Michel, le codeur LinuxFr.org : « Globalement, j’ai beaucoup aimé les présentations que j’ai pu regarder. En voici 3 qui m’ont particulièrement marqué. (…) »
Petite revue de presse en ligne Télécharger ce contenu au format Epub

Lire les commentaires

Sortie d’Ubuntu 14.10

11 novembre, 2014 - 21:19

Sortie le 23 octobre 2014, Ubuntu 14.10 est la vingt-et-unième version d’Ubuntu. Son nom de code est Utopic Unicorn, soit « licorne utopique » dans la langue de Molière.

Pour rappel, Ubuntu est une distribution GNU/Linux basée sur Debian, et déclinée en plusieurs variantes selon l'environnement de bureau utilisée (GNOME, KDE, etc) et la cible visée (serveurs, studio de son, ou encore pour les mobiles et tablettes à venir, etc). Soutenue par Canonical, et après un succès sur les sentiers battus, les décisions quant aux choix techniques des prochaines déclinaisons d'Ubuntu font souvent parler d'elle, en bien (notamment l'ergonomie) comme en mal (tel que le choix des licences pour les projets internes).

Pour autant, conséquence directe des ambitions pour l'Ubuntu 15.04 qui sortira dans six mois, les modifications à l'ordre du jour sont assez courtes. Cette sortie de la nouvelle version d'Ubuntu reflète donc un syndrome déjà vu pour d'autres distributions : dans l'ensemble, on met à jour les mêmes composants que les autres, et on change quelques ressources graphiques.

Fort heureusement, si cette 14.10 est faible en modifications spécifiques à Ubuntu, la 15.04 s'annonce déjà plus intéressante.

Les principales nouveautés mises à jour

Comme à chaque nouvelle version d'une distribution, la plupart des paquets logiciels présents dans les dépôts ont été mis à jour. Parmi les changements, on peut trouver :

  • le noyau Linux 3.16 ;
  • Unity en version 7.3.1, pour ceux utilisant l'environnement proposé par défaut et par la majorité des utilisateurs ;
  • Plasma en version 4.11, et KDE SC 4.14, ainsi que la possibilité d'essayer Plasma 5, pour les utilisateurs de Kubuntu ;
  • Gnome en version 3.12, pour les utilisateurs d'Ubuntu Gnome ;
  • Firefox est présent en version 33, LibreOffice en version 4.3.2.2, etc

Le logiciel phare de Canonical pour cette fois, Unity, se contente de se stabiliser pour la version 15.04 à venir. Firefox fait partie des quelques logiciels à recevoir un traitement de faveur et à avoir des mises à jour même dans la version LTS 14.04. Dans l'immédiat, le seul intérêt de passer à la version 14.10 serait d'éviter de tomber sur les bugs qui auront été corrigés et de profiter de quelques améliorations de performance, mais aucune nouvelle fonctionnalité vraiment à la clé : si tout fonctionne sur votre bécane, vous pouvez très bien attendre février, ou de voir à quoi ressemblera la 15.04, avant de penser à une quelconque mise-à-niveau.

Ubuntu Kylin

C'est plutôt une actualité, mais Ubuntu Kylin, la variante d'Ubuntu pour la Chine, a été ajoutée au Government Centralised Procurement Program, une liste des technologies approuvées pour une utilisation au sein du gouvernement chinois.

Préparons le pop-corn : la 15.04

Le nom de code d'Ubuntu 15.04 a été dévoilé par Mark Shuttleworth le 20 octobre dernier (jour fêtant les 10 ans d'Ubuntu). Il s'agira de Vivid Vervet, soit le vervet vif.

La 14.04 étant une LTS, elle a servi de socle pour débuter un travail de stabilisation, qui a ensuite été continué dans la 14.10. C'est pour nettoyer un peu le terrain avant les gros chantiers.

La conquête des téléphones

La prochaine version embarquera une nouvelle version de Mir avec Unity 8. Or, ces versions sont déjà utilisées sur Ubuntu Phone, le système pour smartphone basé sur Ubuntu. Slashdot nous apprend que le but de Canonical est de converger vers une « interface unifiée pour mobiles et bureaux » (dans le sens Microsoft qui fait un four, ou dans le sens ''responsive design'' comme pour les sites web ? À suivre).

Cela annonce t-il l'arrivée d'un ordiphone sous Ubuntu ?

Les batailles de clocher : Mir, Wayland, Upstart, Systemd

Même si la communauté semble se ranger derrière le protocole de serveur d'affichage Wayland, Canonical continue de soutenir un concurrent développé en interne, Mir. Cela pourrait entraîner quelques problèmes (quid des pilotes pour Mir par exemple ?). Cependant Mir reste utilisé pour Ubuntu Phone (cf ci-dessus).

Canonical soutient le sytème de démarrage Upstart depuis longtemps. Or, Debian devrait a priori adopter le concurrent Systemd. Par conséquent, Canonical réfléchit à revenir sur systemd également. À noter que Fedora (et donc RHEL 6), qui était d'abord parti sur Upstart, l'a remplacé par systemd depuis Fedora 15. Les choses se précisent côté Ubuntu : la transition finale vers systemd comme init par défaut est prévue pour la première moitié du cycle de développement.

Télécharger ce contenu au format Epub

Lire les commentaires

La marque Gnome convoitée par la société Groupon

11 novembre, 2014 - 17:04

Tout le monde connaît GNOME, l'environnement de bureau né en 1999, sélectionné par défaut sur beaucoup de distributions Linux, et utilisable sur tablette.

Groupon, un site d'achat groupé, a baptisé du même nom « Gnome » son nouveau produit informatique, une tablette destinée aux points de vente.

Jugeant cette homonymie nuisible à son image de marque, la Fondation GNOME est en branle-bas de combat, sa marque déposée ne l'empêchera pas d'avoir à dépenser des frais de justice estimés à 80 000 dollars. Un appel aux dons est en cours sur le site de la fondation.

NdM : la situation a évolué rapidement (voir les réactions de Groupon et l'annonce GNOME). D'une part il y a déjà plus de 70k$ collectés, et d'autre part Groupon a indiqué renoncer à utiliser le nom Gnome pour sa tablette, bref résolution à l'amiable.

NdM : citons quelques cas autour du droit des marques précédemment évoqués, avec :

Télécharger ce contenu au format Epub

Lire les commentaires

Red Hat Software Collections 1.2

11 novembre, 2014 - 14:33

Red Hat a annoncé, le 30 octobre dernier, les « Software Collections » en version 1.2. Il s'agit d'un canal (terminologie de Red Hat pour désigner un dépôt logiciel) contenant des logiciels dont les versions sont plus récentes que dans les canaux habituels de la distribution RHEL.

Comme chaque canal logiciel de Red Hat, celui-ci est soumis à souscription auprès de la société.

La deuxième partie de dépêche aborde une sélection des mises à jour de ce dépôt. Si vous souhaitez vous renseigner sur les modalités d'utilisation, vous êtes invités à lire la dépêche sur la version 1.0 bêta.

Côté développeurs

Cette mise à jour est très orientée développeur, avec en phare l'arrivée de Red Hat Developer Toolset 3. Cet ensemble de logiciels apporte des outils récents de développement et de compilation, comme Eclipse, GCC 4.9 ou ltrace 0.7.91.

Un autre outil entre dans RHSCL : DevAssistant 0.9.1, pour mettre en place un environnement de développement et publier du code.

Vous êtes plutôt fan de Java ? Maven 3.0 devrait vous ravir !

Git a été séparé du Red Hat Developer Toolset et dispose donc de sa propre collection, pour arriver en version 1.9.4 !

Côté serveurs

Ça y est, Nginx c'est du sérieux pour Red Hat, il a d'ailleurs été mis à jour dans sa dernière branche stable (version 1.6.1). On regrettera par contre que Node.js (présent en version 0.10, accompagné de npm 1.3.24) soit toujours en avant-première technologique.

Pour les serveurs de bases de données, on retrouve, comme en version 1.1 :

  • MongoDB 2.4.9 ;
  • MariaDB 5.5.37 ;
  • MySQL 5.5.37 ;
  • PostgreSQL 9.2.8.

Enfin, Apache est toujours disponible en version 2.4.6.

Côté langages

Rien d'exceptionnel ici, il s'agit essentiellement des mêmes versions des briques déjà présentes :

  • Ruby 1.9.3 et 2.0.0 ;
  • une version de Rails par version de Ruby, 3.2.8 mais aussi 4.0.2 dans sa propre collection ;
  • Python 2.7.5 et 3.3.2 ;
  • PHP 5.4.16 et 5.5.6 ;
  • Perl 5.16.3.
La cerise sur le gâteau ?

Docker serait-il le nouveau chouchou de Red Hat ? Quoi qu'il en soit, Red Hat annonce que des Dockerfiles sont disponibles pour certaines collections, afin d'aider les développeurs à construire et déployer rapidement des applications sous forme de conteneurs. C'est KVM qui va être jaloux !

Télécharger ce contenu au format Epub

Lire les commentaires

MonitoringLover ? Viens au BarCamp Centreon #5 le 22 novembre 2014 à Paris

11 novembre, 2014 - 11:36

Centreon est un logiciel libre de supervision. Il collecte, consolide et présente les métriques de disponibilité et de performance des infrastructures IT.

Les équipes de développement de Centreon organisent leur cinquième Barcamp le samedi 22 novembre prochain. Traditionnellement hébergé à Gentilly dans les locaux de la société éditrice de Centreon, l'événement aura lieu cette fois au Loft Bastille à Paris le 22 novembre.

Pendant une journée, nous échangerons ensemble autour des nouveautés de Centreon et de la supervision en général. L’actualité est riche en ce moment et les ateliers traiteront également des projets Rudder, Docker, Elasticsearch, Sensu, Packetbeat.

Nous aurons également un gros retour d'expérience de l'utilisation de Centreon chez CRITEO par Charles JUDITH et Herve CHRUN : Centreon + Chef + RackMonkey + Gitorious + ModGearman.

Monitoring Lover ? Cette journée est faite pour toi :)

La participation à cet événement est libre et gratuite mais l’inscription est obligatoire.

Des questions, des idées ? écrivez-nous !

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 45 de l'année 2014

10 novembre, 2014 - 23:42

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[ZDNet] Créatifs libres et open source: les lauréats étudiants de l'Open World Forum

Par Thierry Noisette, le dimanche 9 novembre 2014. Extrait:

Six projets, nominés à la Student DemoCup, ont été présentés à l'OWF. Les lauréats ont pour objet la mesure de la neutralité du Net, un éditeur visuel pour jeux vidéo 3D et une appli pour les personnes ayant des troubles d’élocution graves.

Lien vers l'article original: http://www.zdnet.fr/actualites/creatifs-libres-et-open-source-les-laureats-etudiants-de-l-open-world-forum-39809259.htm

[Le Monde.fr] Les tablettes au collège, la fausse bonne idée de François Hollande

Par Damien Leloup, le vendredi 7 novembre 2014. Extrait:

«Des cours de codage» et «une tablette et une formation au numérique» pour tous les élèves de cinquième à partir de la rentrée 2016: voilà les deux principaux points du «plan numérique» pour l'école qu'a précisé François Hollande, jeudi 6 novembre sur TF1. Les tablettes au collège, c'est presque une spécialité du président de la République: la Corrèze, son fief, équipe depuis 2010 les collégiens en iPad, la tablette d'Apple, dans le cadre d'un programme pilote qui prévoyait initialement d'équiper les élèves d'ordinateurs portables.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/11/07/les-tablettes-au-college-la-fausse-bonne-idee-de-francois-hollande_4520005_4408996.html

[La Presse] Quand l'austérité est aveugle

Par Mylène Moisan, le vendredi 7 novembre 2014. Extrait:

Miguel Ross était tout content, il avait décroché un super boulot. Il allait aider le gouvernement à économiser de l'argent en trouvant des logiciels libres, donc gratuits, pour remplacer ceux qui coûtent une petite fortune à l'État.

Lien vers l'article original: http://www.lapresse.ca/le-soleil/opinions/chroniqueurs/201411/06/01-4816600-quand-lausterite-est-aveugle.php

[Capital.fr] «Demain, presque tout sera gratuit»

Par Gilles Tanguy, le vendredi 7 novembre 2014. Extrait:

Dans son dernier livre «La Nouvelle Société du coût marginal zéro» (Ed. Les Liens qui libèrent), le célèbre économiste américain Jeremy Rifkin, qui a conseillé Angela Merkel, ne pronostique rien de moins que la fin du capitalisme actuel. Grâce à l'explosion des plates-formes de partage.

Lien vers l'article original: http://www.capital.fr/enquetes/economie/demain-presque-tout-sera-gratuit-978272

Et aussi:

[Silicon.fr] L'Open Source gagne du terrain dans l'administration

Par Alain Merle, le jeudi 6 novembre 2014. Extrait:

L’Open Source infuse de plus en plus de couches d’infrastructures au sein de l’administration. Ce mouvement est doublement bénéfique: il limite l’adhérence aux grandes technologies propriétaires et laisse libre court à l’expérimentation, explique la DSI de l’Etat dans cette tribune.

Lien vers l'article original: http://www.silicon.fr/open-source-administration-bases-donnees-cloud-tribune-101296.html

[Challenges] "Open innovation": quand les grands groupes lorgnent les start-up

Par Olivier Ezratty, le jeudi 6 novembre 2014. Extrait:

Olivier Ezratty, consultant high-tech, explique comment les grands groupes lorgnent sur les start-up pour faire éclore l'innovation à bon compte. Opération gagnant-gagnant?

Lien vers l'article original: http://www.challenges.fr/tribunes/20141104.CHA9800/innovation-ouverte-quand-les-grands-groupes-lorgnent-les-start-up.html

[Next INpact] L'Allemagne pourrait forcer les sociétés américaines à dévoiler leurs codes-source

Par Vincent Hermann, le mercredi 5 novembre 2014. Extrait:

L’Allemagne travaille actuellement sur un projet de loi assez radical: l’obligation pour les entreprises américaines de montrer patte blanche si elles veulent fournir du matériel et des services à des secteurs jugés critiques de l’économie. Une décision qui pourrait largement favoriser les sociétés allemandes, en particulier Deutsche Telekom.

Lien vers l'article original: http://www.nextinpact.com/news/90772-l-allemagne-pourrait-forcer-societes-americaines-a-devoiler-leurs-codes-source.htm

Et aussi:

[01netPro.] L'Open source et l'Inria, une relation durable

Par Marie Jung, le mardi 4 novembre 2014. Extrait:

Depuis 30 ans, l'engagement de l'Inria en faveur des logiciels libres ne faiblit pas. Présent à l'Open World Forum, l’institut de recherche a fait le panorama de ses différentes initiatives dans le domaine.

Lien vers l'article original: http://pro.01net.com/editorial/630702/l-open-source-et-l-inria-une-relation-durable

Télécharger ce contenu au format Epub

Lire les commentaires

Gel de Debian 8.0 Jessie

10 novembre, 2014 - 23:27

Le gel de Debian 8, nom de code Jessie, la future version stable donc, a eu lieu comme prévu le 5 novembre 2014 à 23h59.

NdM : pour mémoire, Debian gère une version ancienne dite oldstable encore mise à jour (Debian 6 Squeeze pour l'instant), une version courante dite stable (Debian 7 Wheezy), une version avancée/préparatoire dite testing (Debian 8 Jessie) et une version en évolution constante dite unstable (nom fixe, Debian Sid). Tous les noms de version sont tirés des noms de personnage des films d'animation Toy Story (à venir Debian 9 Stretch et Debian 10 Buster).

Les changements possibles ne sont plus que des corrections de bogues critiques et importants dans des logiciels qui ne font pas partie du noyau. À 18h (UTC) le jour de gel, 310 bugs critiques pour la sortie de Jessie étaient recensés. Des paquets non indispensables contenant des bugs critiques pourront être supprimés.

Comme de coutume, aucune date de sortie n'est prévue (mais la politique de gel prévoit des étapes les 5 décembre 2014, janvier et février 2015).

D'après le site listant les paquets Debian, les versions suivantes devraient être présentes (liste évidemment non exhaustive) :

  • noyaux Linux 3.16.3 / Kfreebsd 10.1 ;
  • Xen 4.4 / QEMU-KVM 2.1 ;
  • Apache 2.4.10 / Nginx 1.6.2 ;
  • MySQL Server 5.5.39 / Mariadb 10.0.14 /PostgreSQL 9.4 ;
  • Squid 3.4.8 ;
  • Exim 4.84 / Postfix 2.11.2 ;
  • Dovecot 2.2.13 / Cyrus 2.4.17 ;
  • Gnome 3.14 / KDE 4.14.2 / Xfce 4.10.1.
Télécharger ce contenu au format Epub

Lire les commentaires

Debian bug Squashing Party (Jessie) du 14 au 16 novembre 2014 à Paris

9 novembre, 2014 - 16:11

Une chasse aux bogues (Bug Squashing Party, BSP) est organisée dans les locaux de Mozilla à Paris (Mozilla, 16 bis boulevard Montmartre, 75009 Paris, France). L'évènement aura lieu du vendredi 14 novembre jusqu'au dimanche 16.

Le but d'une BSP est de rassembler des contributeurs Debian pour corriger un maximum de bogues dans la distribution Debian. Des développeurs Debian seront présents pour aider à comprendre le fonctionnement du projet ainsi qu'aider à l'intégration des correctifs à Debian.

Pour des raisons d'organisation, l'inscription sur le Wiki Debian ou sur meetup.com est obligatoire.

Télécharger ce contenu au format Epub

Lire les commentaires

Votre blogue à la maison sur Raspberry Pi

9 novembre, 2014 - 14:42

Nous verrons dans ce tutoriel comment installer un Raspberry Pi pour en faire un serveur web hebergé chez vous, derriere votre box internet.

    Sommaire Conventions établies adresse IP du rpi = 192.168.1.10 (nom : rpi) adresse IP de votre ordinateur = 192.168.1.11 (nom : pc) adresse IP de votre box Internet = 192.168.1.1 (nom : box) votre compte sur le pc = votre_login_pc votre compte sur le rpi = votre_login_rpi nom du site = nomsite.sytes.net (un fournisseur de DNS dynamique gratuit)
    • Je n'utilise pas sudo, donc les commandes se font par un passage en root par su ;
    • Sur le rpi, la connexion est possible par wifi avec une clé USB, mais j'utilise l'Ethernet ;
    • Le tutoriel est entièrement basé sur Linux et il n'y a pas d'interface graphique, sauf accident. J'ai testé TV + souris + clavier, je n'en ai pas trouvé l'intérêt dans le cadre choisi ici ;
    • Lorsque le système sera sur la clé USB, il restera une seule sortie USB, suffisante pour une utilisation du clavier s'il y a besoin d'une connexion en mode console pour un dépannage ;
    • La légèreté a été privilégiée contre toute autre considération, entraînant le choix de Nginx et de Pluxml. Nginx est réputé pour être moins lourd qu'Apache, et Pluxml n'utilise pas de bases de données. Mais d'autres choix peuvent être faits.
    Achat du rpi

    J'ai acheté les produits ci-dessous chez www.kubii.fr.

    32,99 € Raspberry Pi 512Mo Model B 3,15 € Cordon d'alimentation 1.8 mètres, USB A M-MICRO B M 7,90 € Adaptateur USB euro noir 2,40 € Cable HDMI 2 mètres 6,87 € Boitier 11,95 € Expédition 65,26 € TOTAL

    Après cet achat et après avoir fait du rangement chez moi, j'ai trouvé un vieux mini-hub USB 4 ports avec son câble USB mâle-mini mâle (ou micro) qui permet d'assurer l'alimentation du rpi et d'avoir plus d'entrées USB. Mais il faut avoir la bonne tension, je n'y connais rien, donc si vous n'êtes pas sûr, achetez tout le nécessaire. La longueur des câbles doit être décidée en fonction de l'endroit où vous poserez votre rpi (prise de courant, boîtier Internet, TV). De plus, si vous n'en avez pas, achetez aussi un câble Ethernet. Vous aurez aussi besoin d'une carte SD et d'une clé USB de 8 Go. Si vous suivez ma configuration, achetez la carte SD la plus petite et la moins chère, elle ne servira qu'à démarrer, le reste étant sur la clé USB. Celle-ci servira de disque dur, elle doit donc être robuste et rapide, mais les spécifications ne sont jamais précisées. Je possède trois clés USB et une carte SD de classe 4, j'ai donc fait des tests de lecture/écriture, peu fiables apparemment, mais qui donnent peut-être des indications. J'ai tout formaté en ext4.
    Tests de lecture (relancer plusieurs fois pour trouver une moyenne) :

    hdparm -t --direct /dev/sdc sd 20 MB/s hdparm -t --direct /dev/sdd usb1 29 MB/s hdparm -t --direct /dev/sde usb2 22 MB/s hdparm -t --direct /dev/sdf usb3 22 MB/s

    Tests d'écriture (relancés plusieurs fois pour trouver une moyenne) :

    sync;time bash -c "(dd if=/dev/zero of=/mnt/test bs=8k count=10000; sync)" sd 930 MB/s usb1 1.1 GB/s usb2 1.1 GB/s usb3 850 Mb/s

    Bien sûr, ces résultats en écriture sont délirants, mais je constate que la SD et l'USB3 sont les moins rapides, et que l'USB1 s'en sort le mieux, c'est donc celle que j'ai choisie pour installer Raspbian.

    Installation de Raspbian et partitionnement

    Plusieurs distributions sont disponibles, j'ai choisi la Raspbian Wheezy, une dérivée de la Debian Wheezy, téléchargeable ici. Elle se présente sous la forme AAAA-MM-JJ-wheezy-raspbian.img et pèse 500 Mb. Vous la dézippez sur le PC et l'installez sur la clef USB (/dev/sdX avec X=c dans mon cas, mais ça peut changer chez vous) par la commande :

    dd if=AAAA-MM-JJ-wheezy-raspbian.img of=/dev/sdX

    Attention : /dev/sdX doit bien être votre clef USB, et non un disque dur, sinon le contenu sera écrasé. Vous obtiendrez le partitionnement suivant :

    • un espace vide de 4 Mb (taille probablement aléatoire)
    • partition /dev/sdX1 en FAT32 d'une taille de 56 Mb, c'est la partition /boot
    • partition /dev/sdX2 en ext4 d'une taille de 1.75 Gb, la partition système /

    Sur le PC vous formatez votre carte SD en FAT32 (/dev/sdY avec Y=d dans mon cas). Ensuite vous montez la partition /boot de votre clef USB, et la partition de la carte SD, afin de copier les fichiers de démarrage de la carte USB vers la carte SD :

    mkdir /tmp/mnt_usb ; mount -t vfat /dev/sdX1 /tmp/mnt_usb mkdir /tmp/mnt_sdcard ; mount -t vfat /dev/sdY1 /tmp/mnt_sdcard cp -av /tmp/mnt_usb/* /tmp/mnt_sd/

    Il faut indiquer maintenant au rpi où se situe la partition système. Pour cela éditez le fichier cmdline.txt de la carte SD, /tmp/mnt_sd/cmdline.txt, et remplacez root=/dev/mmcblk0p2 (ce nommage de la carte SD peut être différent chez vous) par root=/dev/sda2 : ce qui se présente actuellement sous le nom de /dev/sdY2 (ou autre) sur votre ordinateur, sera nommé /dev/sda2 sur le rpi. Vous pouvez démonter la carte et la clef USB. Cette dernière peut être laissée en l'état ou repartitionnée selon vos besoins.

    Personnellement j'ai supprimé l'espace vide et la partition FAT32 puis déplacé /dev/sdY2 au début du disque en l'agrandissant à 3 Go (actuellement mon / ne dépasse pas 1,5 Go).

    Il est aussi possible de créer d'autres partitions (swap, données, etc.), mais vous pourrez toujours le faire ultérieurement si besoin. Il y a aussi un fichier de swap de 100 Mo dans le système qu'on peut réduire ou agrandir (/etc/dphys-swapfile & /var/swap), mais n'ayant pas de problème de mémoire je n'y ai pas touché (mon blogue est très léger et requiert entre 200 et 250 Mo sur les 512 Mo du rpi).

    Vous pouvez maintenant insérer la carte SD et la clef USB sur le rpi, connecter le câble Ethernet et le câble d'alimentation, et enfin lancer la petite bestiole.

    Configuration de base du rpi Raspi-config

    Le rpi a démarré et devrait fonctionner. Comment vous connecter ? La première chose à faire est de consulter votre boîtier Internet pour connaître l'adresse IP dynamique attribuée au rpi. Vous trouvez par exemple 192.168.1.30. La commande ssh pi@192.168.1.30 avec le mot de passe raspberry vous permet de vous identifier avec l'utilisateur par défaut pi. Cette commande ssh nom_user@adresse_ip_rpi est la seule commande vous permettant d'accéder au rpi sans interface graphique. Commencez par attribuer un mot de passe à root par sudo passwd root, vous permettant de vous identifier en root par su, afin de de configurer le rpi avec la commande raspi-config (ce menu peut changer si votre version de raspbian est plus récente que la mienne). Il est imprudent de s'indentifier directement en root par SSH, nous verrons comment l'interdire plus loin.

    Dorénavant nous serons presque exclusivement en root pour toute la suite des démarches :

    ssh pi@192.168.1.30 sudo passwd root password su raspi-config

    La dernière commande affiche cet écran sur 2 colonnes, chaque ligne pouvant être sélectionnée pour modification; je mets en commentaire à droite mes propres choix.

    info Information about this tool expand_rootfs Expand root partition to fill SD card # inutile overscan Change overscan # inutile configure_keyboard Set keyboard layout # mettez fr pour avoir l'azerty en cas de connexion TV change_pass Change password for 'pi' user # votre mot de passe change_locale Set locale # je garde par défaut [*] en_GB.UTF-8 UTF-8, sinon la connexion SSH est graphiquement polluée change_timezone Set timezone # Europe/Paris change_hostname Set hostname # raspberrypi par défaut memory_split Change memory split # gpu=4 : l'utilisation de la carte graphique étant inutile, je donne au GPU la valeur minimale de 4 Mb, tout le reste étant disponible pour le CPU overclock Configure overclocking : * None 700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt # j'ai choisi Medium * High 950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt * Turbo 1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt ssh Enable or disable ssh server # enable boot_behaviour Start desktop on boot? # non camera Enable/Disable camera addon support # non rastrack Add this Pi to Raspberry Pi Map - Rastrack # non update Try to upgrade raspi-config # non (on le fera plus tard)

    Vous pouvez redémarrer, vous reconnecter par SSH, puis passer en root et vérifier que le surcadencement (« overclocking ») est correct de différentes manières :

    vcgencmd get_config int vcgencmd get_config arm_freq cat /boot/config.txt

    Il est aussi conseillé de modifier le fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor en remplaçant powersave par ondemand.

    Au fait, ça chauffe un rpi? Allez voir /opt/vc/bin/vcgencmd measure_temp.

    IP statique

    Pour un serveur Web je préfère une IP statique, ce qui s'obtient en modifiant /etc/network/interfaces (j'ai diésé les options se référant au DHCP et au wifi)

    auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.1.255 gateway 192.168.1.1

    Après un redémarrage, vous vous connectez par ssh pi@192.168.1.10

    Faisons un peu de ménage

    Le rpi va nous servir uniquement à créer un blogue, et c'est tout. Pour un serveur Web, de nombreux éléments sont inutiles, ce qui va nous permettre de faire un grand nettoyage à la tronçonneuse. Pour commencer, supprimons des consoles inutiles dans notre cas. Dans le fichier /etc/inittab vous pouvez diéser les 4 dernières lignes, c'est-à-dire les consoles 3 à 6.

    1:2345:respawn:/sbin/getty --noclear 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 Gestion des utilisateurs et des groupes

    Je préfère supprimer l'utilisateur pi qui est connu et donc identifiable pour les intrus. Créons d'abord un nouvel utilisateur et son groupe, qui par convention auront pour nom votre_login_rpi

    useradd --home-dir /home/votre_login_rpi --create-home --skel /etc/skel --user-group --uid 1000 votre_login_rpi passwd votre_login_rpi

    Vérifiez que votre nouvel utilisateur est bien créé :

    id votre_login_rpi uid=1000(votre_login_rpi) gid=1000(votre_login_rpi) groups=1000(votre_login_rpi)

    Vous devez vous déconnecter en faisant 2 fois Ctrl+d (exit de root, puis exit de pi), puis vous reconnecter par ssh votre_login_rpi@192.168.1.10, repasser en root et supprimer l'utilisateur pi:

    userdel --remove pi groupdel pi

    Je décide aussi de supprimer les utilisateurs et groupes inutiles
    userdel

    • games
    • lp

    groupdel

    • fax
    • voice
    • cdrom
    • floppy
    • tape
    • sudo
    • audio
    • video
    • lpadmin
    • indiecity
    Les modules son

    lsmod affiche des modules de son dont nous n'aurons pas besoin. Dans le fichier /etc/modules il suffit de commenter le module son #snd-bcm2835

    Suppression des services inutiles

    Pour désactiver un service sans supprimer son script de lancement (dans /etc/init.d/):

    /etc/init.d/nom_service stop update-rc.d -f nom_service remove

    Procédez ainsi avec les services triggerhappy plymouth plymouth-log.

    Pour visualiser les services présents et/ou actifs il faut installer sysv-rc-conf avec les commandes:

    apt-get update apt-get install sysv-rc-conf sysv-rc-conf --list # liste de tous les services présents sysv-rc-conf # interface minimale (mais ça rame) pour activer/désactiver les services Gestion des logiciels Raspbian

    La version de Raspbian que vous avez installée peut nécessiter une première mise à jour, opération que vous effectuerez de temps à autre de cette manière :
    apt-get update qui réactualise le fichier répertoriant les logiciels disponibles ; relancez cette commande chaque fois que vous souhaitez rechercher, mettre à jour ou installer des paquets ; apt-get dist-upgrade fait une mise à jour globale de la distribution

    Il se peut qu'une mise à jour du micrologiciel (« firmware ») du rpi soit nécessaire, pour cela il faut lancer rpi-update. Depuis peu c'est un paquet intégré à Raspbian, mais je ne sais pas s'il est intallé d'office. Si la commande ne répond pas, installez ce paquet par apt-get install rpi-update
    Avant cette mise à jour lancez les commandes /opt/vc/bin/vcgencmd version et uname -a et notez les résultats.
    Puis lancez rpi-update, redémarrez, et comparez les nouvelles versions du système.

    Suppression des paquets inutiles

    Vous pouvez également utiliser raspbian-ua-netinst, qui produit une image minimale sans fantaisie (pas d'utilisateur pi et d'autres trucs).
    Après la mise à jour, dans l'optique d'un serveur Web, de nombreux paquets sont inutiles, donc vous pouvez les supprimer par la commande aptitude purge:

    aptitude purge alsa alsa-base alsa-utils cups-bsd cups-client cups-common dillo gconf-service gconf2 gconf2-common ghostscript gnome-themes-standard libgconf-2-4 gksu libgksu2-0 gnome-accessibility-themes gnome-icon-theme gnome-themes-standard gnome-themes-standard-data gpicview lxde leafpad lightdm liblightdm-gobject-1-0 libxklavier16 lightdm-gtk-greeter libsamplerate0 libqt4-network libqt4-xml libqtdbus4 libqtwebkit4 lxappearance lxde-common lxde-core lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal pistore scratch squeak-plugins-scratch squeak-vm libfm-data libfm-gtk-bin libfm-gtk1 libfm1 libmenu-cache1 lxmenu-data omxplayer pcmanfm penguinspuzzle sudo xarchiver ed galculator midori wpasupplicant xpdf libraspberrypi-doc libiw30 wireless-tools wpagui libcupsimage2 sudo wolfram-engine

    Pour achever cette suppression, installez deborphan qui vous permettra de lister les dépendances devenues inutiles à supprimer, puis lancez-le

    apt-get update apt-get install deborphan deborphan

    Si vous êtes accro aux éditeurs vi, nano ou autres passez votre chemin. Personnellement, pour la mise en place et la configuration du blogue, j'ai choisi de laisser un peu de X-Window afin d'utiliser le petit éditeur nedit par SSH, donc apt-get install nedit

    Le serveur web Installation de Nginx

    Tout d'abord il faut un utilisateur et un groupe dédiés au serveur web. Raspbian l'a fait pour vous, ils se nomment www-data : uid=33(www-data) gid=33(www-data) groups=33(www-data).
    Il faut aussi un répertoire dédié au blogue :

    mkdir /var/www; chown -R www-data.www-data /var/www

    Tant qu'on y est, dans /etc/passwd changez www-data:x:33:33:www-data:/var/www:/bin/sh par www-data:x:33:33:www-data:/var/www:/bin/false afin d'empêcher une connexion sous ce nom, ce qui est plus sécurisé, mais vous devrez tout faire en root et penser à rétablir les propriétaires pour chaque fichier et répertoire créé ou modifié. Pour cela :

    chown -R www-data.www-data /var/www/répertoire # pour la totalité du répertoire chown www-data.www-data /var/www/répertoire/fichier # pour un fichier

    Passons à l'installation proprement dite de Nginx

    apt-get update aptitude install nginx-full nginx-common geoip-database libgeoip1

    Avec les dépôts de Raspbian, j'ai eu la version 1.2.1-2.2 de Nginx, qui date de juillet 2012, alors que la version stable de juin 2013 est la 1.4.0. Mais rien ne vous empêche de compiler aux petits oignons la dernière version de Nginx, avec tous les modules qui vous plaisent.

    Ensuite, pas de serveur web sans php (NdM: enfin sauf LinuxFr.org bien sûr :-)

    apt-get update aptitude install php5 php5-common php5-fpm php5-gd libonig2 libqdbm1 Configuration de Nginx

    Les fichiers de configuration de Nginx sont sous /etc/nginx, les principaux étant:

    • nginx.conf le fichier principal de configuration
    • sites-available/ répertoire contenant les fichiers de configuration du ou des sites
    • sites-enabled/ répertoire contenant les fichiers de configuration du ou des sites actifs (liens symboliques vers le répertoire site-availables)

    Maintenant on va faire un peu joujou avec le serveur, ca vous fera comprendre un peu mieux comment ça se passe. D'abord, dans le fichier /etc/hosts du pc, ajoutez l'adresse IP du rpi et le nom du site : 192.168.1.10 nomsite.sytes.net.

    Si, comme moi, vous avez un XP virtuel installé, il faut mettre la même information dans le fichier C:\windows\system32\drivers\etc\hosts, ce qui permettra de vérifier l'aspect du blog sur un autre système d'exploitation.

    Nginx a été installé, mais pas encore activé. Pour lancer un service sur Raspbian : service nginx start (start pour démarrer le serveur, restart pour le relancer, stop pour l'arrêter).

    Ouvrez un navigateur web et entrez l'adresse IP du rpi, vous devriez obtenir un « Welcome to nginx! »

    Mais ce que vous voulez, c'est créer votre propre site, il faut donc configurer un fichier spécifique, ce sera donc /etc/nginx/sites-available/nomsite, avec une configuration minimale pour tester.

    server { listen 80; root /var/www; server_name localhost; location / { index index.php index.html; } # enable php location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }

    Ce site est « available », mais pas « enabled », donc :

    cd /etc/nginx/sites-enabled rm default # suppression du lien sur le site par défaut présent à l'installation de Nginx ln -s ../sites-available/nomsite service nginx restart

    On va maintenant créer deux petits fichiers de test dans le repertoire /var/www/ où seront rangées toutes les données qui apparaîtront sur votre site. Personnellement, j'ai tout rangé à la racine du répertoire, mais vous pouvez créer un répertoire dédié à votre site sous /var/www/.
    Un premier fichier index.html avec :

    <html><body>Hello world, c'est ma page de mon nouveau site !</body></html>

    Et un petit script php info.php avec :

    <?php phpinfo(); ?>

    N'oubliez pas, vous êtes en root et vous créez des fichiers root pour un serveur dont l'utilisateur est www-data. Les fichiers qui n'ont pas www-data comme propriétaire ne s'afficheront pas sur le site, donc

    chown -R www-data.www-data /var/www/

    ou

    chown www-data.www-data /var/www/index.html /var/www/info.php

    Maintenant affichez dans la barre d'adresse de votre navigateur 192.168.1.10/index.html, et vous devriez voir s'afficher son contenu.
    Pour afficher les infos PHP de votre système, entrez 192.168.1.10/info.php.

    Bon, tout fonctionne, mais le fichier /etc/nginx/sites-available/nomsite est minimaliste. Incapable de faire un tutoriel sur nginx, je vous présente tel quel mon propre fichier, fabriqué à partir de mes recherches, et notamment des références que je donne à la fin. Ce fichier est sûrement approximatif et très perfectible.

    /etc/nginx/sites-available/nomsite

    server { listen 80; server_name localhost: root /var/www; index index.php index.html index.htm; client_max_body_size 20M; # set maximum upload size access_log /var/log/nginx/access.log combined; # format combined pour logwatch error_log /var/log/nginx/error.log; autoindex off; # pour eviter de lister les répertoires # drop.conf include drop.conf; # voir fichier plus bas # default try order location / { # First attempt to serve request as file, then as directory, then as /index.php?$args try_files $uri $uri/ /index.php?$args; } # enable php location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass php5-fpm-sock;#/etc/php5/fpm/pool.d/www.conf /etc/nginx/conf.d/php5-fpm.conf fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

    /etc/nginx/drop.conf

    ### protection de fichers et répertoires contenus dans /var/www/ # # protection des fichiers caches location ~ /\. { deny all; } # # protection du fichier de version de pluxml location /version { return 404; } # #protection de répertoires location ~ /(update|data)/ { deny all; }

    Selon les informations du blogue de pablo-ruth, on configure php5-fm comme suit.

    Création du fichier /etc/nginx/conf.d/php5-fpm.conf :

    upstream php5-fpm-sock { server unix:/var/run/php5-fpm.sock; }

    et modification du fichier /etc/php5/fpm/pool.d/www.conf (le point-virgule dans la ligne suivante indique un commentaire) :

    ;listen = 127.0.0.1:9000 listen = /var/run/php5-fpm.sock

    Pour finir j'ai modifié le fichier /etc/php5/fpm/pool.d/www.conf, mais les valeurs dépendent de la taille du contenu de votre site, vous trouverez des informations dans cette réponse.

    pm = dynamic pm.max_children = 8 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 500 ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com ;php_flag[display_errors] = off ;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M php_flag[display_errors] = on php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on

    Dans /etc/nginx/nginx.conf il faut dédièser server_tokens off;, ce qui permet de cacher la version de Nginx, ce que vous pouvez tester depuis votre pc par telnet (ou nc ou lynx -head ou d'autres) :

    telnet 192.168.1.10 80 HEAD HTTP/1.1

    Ce qui affiche nginx au lieu de nginx.numversion. Pour cacher plus d'informations, il faut compiler Nginx.

    Vous créez un répertoire pour les journaux de Nginx et redémarrez le service :

    mkdir /var/log/nginx/ service nginx restart Hello The World La box Internet

    Pour le moment vous êtes le seul à pouvoir accéder à votre site, mais le reste de l'univers s'impatiente. Il faut rendre votre site accessible à l'extérieur, d'abord par votre boîtier Internet. Le mien est celui de SFR, mais le principe est le même partout. Dans la partie NAT, Il faut effectuer une translation de port entre votre rpi et l'Internet par le port 80. Vous entrez l'adresse IP du rpi, établissez un protocole TCP, et définissez le port 80 comme port de communication.

    Votre nom de domaine chez noip

    Le boîtier a ouvert une porte, mais il vous manque une adresse. Vous pouvez acheter un nom de domaine, autour de 15 euros, mais dans ma démarche de solutions gratuites, j'utilise un nom de domaine attribué par www.noip.com. Bien sûr, cette solution comporte le risque de la disparition soudaine d'un service gratuit mais privé. Vous pouvez vous inscrire ici, prenez l'option « Free » et créez votre compte No-IP. Vous pouvez choisir un nom selon les disponibilités, en le faisant suivre de .noip.me, .zapto.org, .sytes.net, etc.

    Attention, il y a un petit piège. Remplissez le formulaire, avec par exemple nomsite.sytes.net, et cochez le petit carré blanc « Create my hostname later », et ensuite validez par un Sign Up. Ensuite confirmation par mail, vous êtes redirigé dans votre espace membre et vous pouvez « Add a host ». Ici vous enregistrez votre adresse nomsite.sytes.net, choisissez le type DNS Host(A), et ajoutez l'adresse IP externe de votre boîtier Internet.

    Si vous avez comme moi une adresse IP dynamique, le boîtier de SFR gère bien le lien avec no-ip dans Menu Réseau/DynDNS. Activez le service, sélectionnez no-ip.com, entrez vos compte et password no-ip, ainsi que l'adresse nomsite.sytes.net. La prochaine fois que vous redémarrerez votre boîter Internet, 3 ou 4 minutes suffiront pour que votre nom de domaine soit associé à la nouvelle adresse IP dynamique.

    Si vous êtes chez un autre fournisseur d'accès, vous pouvez utiliser ce logiciel fourni pour no-ip pour mettre à jour votre DNS : http://www.noip.com/downloads.php?page=linux

    Maintenant que votre nom de domaine est visible depuis l'extérieur, dans le fichier /etc/nginx/sites-available/nomsite il faut remplacer server_name localhost; par server_name nomsite.sytes.net; puis

    service nginx restart Installation et configuration de Pluxml

    Récupérez le fichier d'installation ici, dézippez-le et copiez-le dans /var/www/ en lui donnant les droits appropriés.

    chown -R www-data.www-data /var/www/ chmod -R 770 /var/www/ service nginx restart

    Depuis votre navigateur allez à l'adresse http://nomsite.sytes.net/install.php et remplissez le formulaire:

    langue+heure Nom de l'administrateur Identifiant de connexion à l'administration Mot de passe Installer

    Après cela supprimez le fichier /var/www/install.php. Vous pourrez installer différents thèmes, ajouter des extensions, etc. Visitez le site, où vous trouverez un wiki, des thèmes, un forum, etc.

    Modifier le thème

    Un petit conseil si vous souhaitez modifier les fichiers PHP et CSS du thème du blogue (mais rien ne vous y oblige si votre thème vous satisfait) :
    Je n'ai pas supprimé tous les paquets graphiques de Raspbian afin d'éditer ces fichiers plus confortablement avec Nedit. Pour cela vous lancerez ssh -X -Y -p 22 votre_login_rpi@192.168.1.10. Ensuite vous pouvez éditer avec nedit les fichiers concernés situés dans /var/www/themes/defaut/, defaut étant le nom du thème par défaut.

    Par contre cela pose des problèmes de droit sur ces fichiers dont www-data.www-data est propriétaire. Deux possibilités s'offrent à vous :

    • ajoutez votre_login_rpi au groupe www-data dans /etc/group ;
    • chmod o+w *.php style.css, édition des fichiers, puis chmod o-w *.php style.css.

    J'ai choisi la deuxième solution, plus contraignante mais plus sécurisée.

    Corriger un bogue

    Il y a un bogue dans Pluxml lorsque les personnes qui viennent poster un commentaire souhaitent inscrire leur site web. Le site nomsite.sytes.net est récupéré tel quel sans « http:// », donc si on clique dessus la redirection ne s'effectue pas. J'utilise le thème « defaut », peut-être que ce boque est absent des autres thèmes. Pour ajouter « http:// » par défaut dans le formulaire, il faut modifier le fichier /var/www/themes/defaut/commentaires.php et remplacer:

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site',''); ?>" />

    par

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site','http://'); ?>" /> Administration du serveur

    Maintenant vous avez un blogue, vous postez vos articles, recevez des commentaires, etc. Tout va bien. Vraiment bien ? Votre serveur est une porte ouverte sur internet, votre nom de domaine est fixé pour l'éternité, connu du plus grand nombre. Il faut donc lui prodiguer protection et surveillance, à l'aide de quelques outils à mettre en place et à configurer.

    Le pare-feu Iptables

    Je ne vais pas vous faire un cours, mais seulement vous montrer mon pare-feu. Les règles iptables sont le moyen le plus simple de filtrer les entrées/sorties de votre rpi. Attention à cette étape, une mauvaise règle ssh peut vous faire perdre votre connexion avec le rpi, et dans ce cas la seule solution sera de vous connecter via la tv pour réparer le script.

    Il y a 3 scripts à écrire, et pour les rendre plus lisibles, j'emploierai cette nomenclature :

    • adresse.ip.rpi (192.168.1.10)
    • adresse.ip.pc (192.168.1.11)
    • adresse.ip.box (192.168.1.1)

    /etc/init.d/fw

    #!/bin/sh ### BEGIN INIT INFO # Provides: fw # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: pare-feu iptables # Description: iptables ### END INIT INFO case $1 in "start") /etc/fwstart ;; "stop") /etc/fwstop ;; "restart") /etc/fwstop /etc/fwstart ;; esac

    /etc/fwstop

    #!/bin/sh # remise à zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # nous les faisons pointer par défaut sur ACCEPT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

    /etc/fwstart

    #!/bin/sh if=eth0 # remise a zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # règles par défaut iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP # rebouclage/loopback iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # règles pour abandonner/droper silencieusement les transmissions internes du réseau local iptables -I INPUT -i $if -s adresse.ip.box -d 224.0.0.1/24 -p igmp -j DROP iptables -I INPUT -i $if -s 172.16.255.254 -d 224.0.0.1/24 -p igmp -j DROP # dns local iptables -A OUTPUT -o $if -s adresse.ip.rpi -d adresse.ip.box -p udp -m udp --sport 1024: --dport 53 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i $if -s adresse.ip.box -d adresse.ip.rpi -p udp -m udp --sport 53 --dport 1024: -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # ssh rpi - pc ### ATTENTION à cette règle : mal écrite, elle supprime votre connexion au rpi ### iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 22 --destination adresse.ip.pc --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source adresse.ip.pc --source-port 1024: --destination adresse.ip.rpi --destination-port 22 -j ACCEPT # règles http du serveur iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 80 --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source-port 1024: --destination adresse.ip.rpi --destination-port 80 -j ACCEPT # règles http du rpi comme client internet, à activer pour les mises à jour apt-get et Pluxml (plugins et une partie de l'administation), à dédièser selon les besoins (les mises à jour ne sont pas fréquentes, une fois par semaine au maximum) #iptables -A OUTPUT -o $if -s adresse.ip.rpi -d 0.0.0.0/0 -p tcp -m multiport --dports 80,443 -m conntrack ! --ctstate INVALID -j ACCEPT #iptables -A INPUT -i $if -s 0.0.0.0/0 -d adresse.ip.rpi -p tcp -m multiport --sports 80,443 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # whois pour awstats iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 1024: --destination-port 43 -j ACCEPT iptables -A INPUT -i $if -p tcp --destination adresse.ip.rpi --source-port 43 --destination-port 1024: -j ACCEPT # ntp iptables -A OUTPUT -o $if -p udp --source adresse.ip.rpi --source-port 123 --destination-port 123 -j ACCEPT iptables -A INPUT -i $if -p udp --source-port 123 --destination adresse.ip.rpi --destination-port 123 -j ACCEPT # journalisation des connexions abandonnées/dropées iptables -t filter -A INPUT -p all -j LOG --log-prefix="DROPIN: " iptables -t filter -A OUTPUT -p all -j LOG --log-prefix="DROPOUT: "

    Vous pouvez enregistrer votre script puis le démarrer

    update-rc.d fw defaults service fw start

    Il est recommandé d'installer nmap et de vérifier l'état des ports du rpi par nmap -v nomsite.sytes.net.

    Rsyslog

    Pour obtenir une meilleure lisibilité des journaux du site, il faut modifier /etc/rsyslog.conf, au début de la partie RULES et avant les premières règles.

    :msg, contains, "DROPIN: " -/var/log/dropin.log & ~ :msg, contains, "DROPOUT: " -/var/log/dropout.log & ~

    En lien avec les 2 dernières règles de /etc/fwstart, ceci permettra à Iptables d'envoyer les messages de drop dans des fichiers à part, à consulter régulièrement.

    service fw restart service rsyslog restart SSH

    SSH est un moyen sécurisé de connexion entre ordinateurs. Le fichier /etc/ssh/sshd_config du rpi peut être configuré plus finement. Attention des erreurs vous feront perdre votre connexion SSH avec le rpi. Améliorons le fichier /etc/ssh/sshd_config :

    • Port 22 par défaut le port SSH est 22, vous devriez en choisir un autre (et revoir les règles SSH d'Iptables). Prenez un port disponible (voir /etc/services et Google).
    • PermitRootLogin no il vaut mieux activer cette option et vous loguer sur le rpi comme utilisateur non privilégié, puis passer en root par su
    • AllowUsers votre_login_pc@adresse.ip.pc seul l'utilisteur « votre_login_pc » de cette machine (le nom de l'utilisateur du pc) pourra se connecter au rpi par SSH (ne pas confondre le nom de l'utilisateur du rpi « votre_login_rpi » et le nom d'utilisateur du pc « votre_login_pc »)

    Puis service ssh restart

    Quelques commandes SSH :

    • connexion simple

    ssh -p 22 votre_login_rpi@adresse.ip.rpi

    • connexion graphique
    ssh -X -Y -p 22 votre_login_rpi@adresse_ip_rpi nedit /var/www/themes/defaut/style.css &
    • depuis le pc, copie de fichier du pc vers le rpi
    scp -P 22 nom_fichier votre_login_rpi@adresse_ip_rpi:/home/votre_login_rpi/ Les clefs SSH

    Il y a une méthode plus sécurisée pour assurer la connexion SSH entre le PC et le rpi, par un système de clefs. Alors que la connexion classique est autorisée par un mot de passe, la connexion par clefs entrepose des données sur les 2 machines, et SSH ira vérifier la validité de ces données sur chacune, ainsi qu'un mot de passe, pour autoriser la connexion. Sur votre PC en tant qu'utilisateur votre_login_pc (je suis sur Arch mais la procédure doit être la même partout) :

    • ssh-keygen -t rsa génération d'une paire de clefs, une clef privée id_rsa et une clef publique id_rsa.pub dans le répertoire par défaut /home/votre_login_pc/.ssh/
    • Enter passphrase (empty for no passphrase): entrez une passphrase, c'est-à-dire un mot de passe
    • Your identification has been saved in /home/votre_login_pc/.ssh/id_rsa
    • Your public key has been saved in /home/votre_login_pc/.ssh/id_rsa.pub

    Il faut maintenant envoyer au rpi la clef publique ssh-copy-id -i ~/.ssh/id_rsa.pub votre_login_rpi@adresse.ip.rpi -p 22

    Vous vous connectez comme auparavant par ssh -p 22 votre_login_rpi@adresse.ip.rpi, mais dorénavant c'est la passphrase qui vous sera demandée.

    Logwatch

    Logwatch parcourt et analyse les fichiers journaux dans /var/log/ et envoie un courriel.
    apt-get install logwatch installe les paquets exim4-base exim4-config exim4-daemon-light heirloom-mailx libdate-manip-perl libyaml-syck-perl logwatch.

    L'installation va jusqu'à sa fin, mais au moment du lancement du serveur de courriels Exim, j'ai eu cette erreur:

    [ ok ] Starting MTA: exim4
    ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
    C'est un problème avec IPv6 qui n'est pas présent sur le rpi, il faut donc modifier /etc/exim4/update-exim4.conf.conf en remplaçant
    dc_local_interfaces='127.0.0.1 ; ::1' par dc_local_interfaces='127.0.0.1'
    puis lancez update-exim4.conf

    Afin de lire les courriels root sous votre compte votre_login_rpi, modifiez /etc/aliases en ajoutant root:votre_login_rpi
    service exim4 restart

    mkdir /var/cache/logwatch cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

    J'ai modifié /etc/logwatch/conf/logwatch.conf en commentant les lignes suivantes :

    #MailTo = root #MailFrom = Logwatch #Service = "-zz-network" #Service = "-zz-sys" #Service = "-eximstats" #mailer = "/usr/sbin/sendmail -t"

    et remplacé « Detail = Low » par « Detail = 10 » afin d'avoir de plus amples informations.

    Un script cron lancera un script logwatch tous les jours à 6h25, l'étude se faisant sur les fichiers journaux de la journée précédente, et sur vos services activés et présents dans le fichier /usr/share/logwatch/default.conf/services. Demain, sous votre compte, vous n'aurez qu'à taper mail.

    Le problème, c'est que Nginx n'est pas présent dans la liste de Logwatch, il faut donc s'en occuper.

    D'abord Logwatch lit un certain format de fichier, c'est pour cela que les fichiers de log de Nginx sont au format combined dans /etc/nginx/sites-available/nomsite access_log /var/log/nginx/access.log combined;
    Nginx rejette le format combined pour error.log, je ne suis pas parvenu à l'intégrer.

    On peut maintenant configurer des fichiers Nginx pour logwatch, en prenant comme modèle les fichiers http.conf.

    cd /usr/share/logwatch/default.conf/logfiles cp http.conf nginx.conf

    et modifier ce dernier en supprimant toutes les lignes LogFile = et Archive =

    puis ajoutez

    LogFile = nginx/*access.log LogFile = nginx/*access.log.1 Archive = nginx/*access.log.*.gz cd /usr/share/logwatch/default.conf/services/ cp http.conf nginx.conf

    et modifier ce dernier en remplaçant au début http par nginx

    Title = "nginx" LogFile = nginx cd /usr/share/logwatch/scripts/services cp http nginx

    pas de modification

    En attendant les prochains courriels de Logwatch, vous pouvez le lancer en direct, en ciblant les services et en utilisant les logs de Today ou Yesterday:

    logwatch --output stdout --format text --detail 10 --service cron --service iptables --service pam_unix --service sshd --service nginx --range Today --hostname raspberry

    Cependant, vous comprendrez mieux ce qui se passe sur votre système en examinant directement les journaux dans /var/log/, et en particulier ceux de /var/log/nginx/, où nginx.error vous informe des problèmes du serveur, et access.log qui vous montrera la liste de vos visiteurs, les tentatives de connexions illicites, etc.

    Logrotate

    Logrotate fait tourner les fichiers journaux dans /var/log/, donc ceux de Nginx aussi. Mon fichier /etc/logrotate.d/nginx se présente comme suit, avec une rotation par semaine :

    /var/log/nginx/*.log { weekly missingok rotate 10 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 cat /var/run/nginx.pid` endscript } Sauvegarde du système

    Bon, il y a les méthodes subtiles et la mienne, genre bourrin, mais c'est efficace : débrancher le rpi, retirer la carte SD et l'USB, et les monter sur le pc afin de les sauvegarder dans les répertoires SD et USB.

    cp /chemin_de_montage_sd/* SD/ (en n'oubliant pas le fichier caché .firmware_revision) rsync -aAXv /chemin_de_montage_usb/* USB/

    Pendant que vous y êtes, un petit e2fsck sur la carte et la clef ne sont pas inutiles e2fsck -f -v /dev/sd...

    Bien sûr on peut faire les sauvegardes sans arrêter le rpi, avec rsync ou tar (à distance?) sur les bons répertoires, puis copie scp sur le pc. Mais quand tout est bien installé et finalisé, les sauvegardes deviennent rares et les seules informations à sauvegarder restent les données Pluxml dans /var/www/data/.

    Analyse et tests Awstats

    Afin de lire les statistiques de votre site, créez un répertoire où elles seront lisibles.

    mkdir /var/www/statistiques chown -R www-data.www-data /var/www/statistiques

    Pour utiliser Awstats, vous aurez besoin de Whois, ainsi qu'une règle Iptables, déjà écrite dans le script en 7.1. L'installation se fait ainsi :

    apt-get update apt-get install awstats libnet-xwhois-perl whois cp /etc/awstats/awstats.conf /etc/awstats/awstats.nomsite.sytes.net.conf

    avec quelques lignes à remplacer :

    • LogFile="/var/log/apache2/access.log" par LogFile="/var/log/nginx/access.log"
    • LogFormat=4 par LogFormat=1
    • SiteDomain="" par SiteDomain="nomsite.sytes.net"
    • HostAliases="localhost 127.0.0.1" par HostAliases="localhost 127.0.0.1 nomsite.sytes.net"
    • SkipHosts="" par SkipHosts="192.168.1.11" afin de masquer l'adresse ip de votre pc dans les statistiques, avec une modification de /usr/lib/cgi-bin/awstats.pl comme indiqué ici :

    Remplacez

    my @arrayunreg = map { if (/\(\?[-^\w]\*:(.*)\)/) { $1 } } @$array;

    par

    my @arrayunreg = map { UnCompileRegex($_) } @$array;

    Un script Cron relance régulièrement la mise à jour des statistiques en envoyant des données dans /var/lib/awstats/. C'est le fichier /etc/cron.d/awstats, avec, par exemple, une mise à jour toutes les 2 heures :

    MAILTO=root 5 */2 * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.nomsite.sytes.net.conf -a -r /var/log/nginx/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=nomsite.sytes.net -update > /dev/null

    Lorsque vous souhaitez lire les statistiques sur votre site, le plus simple est de lancer :

    /usr/share/awstats/tools/awstats_buildstaticpages.pl -dir=/var/www/statistiques/ -update-config=nomsite.sytes.net

    Inscrivez nomsite.sytes.net/statistiques/awstats.nomsite.sytes.net.html dans votre navigateur et vous pourrez voir de nombreuses statistiques sur le mois en cours. Après l'ivresse de votre succès, vous pourrez faire rm /var/www/stat/*

    Tests du site

    Des sites existent pour savoir si votre blogue fonctionne correctement :

    Références

    sans lesquelles je n'aurais pas pu faire cette installation ni ce tutoriel

    Télécharger ce contenu au format Epub

    Lire les commentaires

    OpenWrt Barrier Breaker 14.07 guide vos routes

    8 novembre, 2014 - 08:35

    La communauté OpenWrt a annoncé la nouvelle version de leur système d'exploitation éponyme pour routeurs, le 31 juillet dernier, soit un peu plus d'une année après Attitude Adjustment. La recette du cocktail Barrier Breaker sera disponible sur tous vos routeurs dès leur mise à jour.

    _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- BARRIER BREAKER (14.07) ----------------------------------------------------- * 1/2 oz Galliano Pour all ingredients into * 4 oz cold Coffee an irish coffee mug filled * 1 1/2 oz Dark Rum with crushed ice. Stir. * 2 tsp. Creme de Cacao ----------------------------------------------------- Nouveautés principales depuis Attitude Adjustment (12.09) Principaux changements
    • L'interface web utilise désormais BootStrap
    • Le noyau Linux est passé à la version 3.10
    • Un nouveau système d'init et d'évènements systèmes écrit en C : systemd^W procd
    • Des logiciels/services installables en plus du système de base comme, par exemple :
      • ocserv : service VPN de type OpenConnect
    Les systèmes de fichiers
    • La mise à jour du firmware (sysupgrade) peut être faite sur la mémoire flash NAND
    • Un système de snapshot et de rollback a été rajouté
    • Le système de montage a été réécrit en C pour le rootfs et les block devices.
    Le gestionnaire de configuration UCI
    • Il gère maintenant le test des configurations et permet de revenir sur la dernière configuration qui fonctionnait
    • Le système de déclencheur de changement système a été unifié pour redémarrer les services sur demande
    • Une couche de validation des données a été ajoutée.
    Quel est l'intérêt de mettre OpenWrt sur son routeur ?

    De prime abord, j'ai été un peu sceptique face à l'interface web d'origine de mon routeur qui ne me permettait pas d'avoir une configuration fine de mon réseau.

    Ensuite, ça permet d'avoir des mises à jour régulières des logiciels qui tournent sur le routeur. Ce qui peut permettre de régler des problèmes de sécurité, et autres, assez facilement en téléchargeant une nouvelle image et en le flashant.

    Enfin, OpenWrt m'a permis d'ajouter de nouvelles fonctionnalités sur mon routeur qui n'étaient pas incluses dans le firmware de base, comme le service VPN par exemple, ou encore la séparation en sous-réseaux différents selon les ports ethernet disponibles.

    En outre, on obtient du confort, notamment grâce à un accès SSH à la machine. Donc la possibilité d'exécuter des commandes directement dessus et de lire les sorties d'erreurs facilement lors de tests.

    Télécharger ce contenu au format Epub

    Lire les commentaires