Linux France

S'abonner à flux Linux France
Mis à jour : il y a 24 min 59 sec

31 juillet : la journée des SysAdmin !

il y a 5 heures 30 min

Joyeux SysAdmin day à tous !

Rappel : un « SysAdmin » est un administrateur système.

Chers SysAdmins, soyez apprécié(e)(s) de vos collègues, par exemple en citant la phrase bien connue à propos de votre métier, « personne ne sait ce que vous faites, mais tout le monde sait quand vous ne le faites pas ». Ou bien il y a aussi : « il y a deux type d'administrateurs système : ceux qui ont fait une boulette… et ceux qui vont en faire une ! ».

Vous pouvez leur rappeler qu'en ce jour, les cadeaux de leur part sont les bienvenus !

À tous les autres, faites un geste pour vos SysAdmins ;-)

Télécharger ce contenu au format Epub

Lire les commentaires

Toulouse, le Capitole du Libre 2015, l'appel à participation est lancé !

il y a 5 heures 31 min

L’édition 2015 du Capitole du Libre se tiendra cette année les samedi 21 et dimanche 22 novembre à l’ENSEEIHT de Toulouse. Le Capitole du Libre est un événement consacré aux Logiciels Libres et à la culture libre. Organisé par l’association Toulibre avec l'aide des clubs étudiants de l'ENSEEIHT (Net7, TVn7, CAn7), il est orienté à la fois vers le grand public et le public spécialisé.

Des conférences et des ateliers ont lieu tout au long du week-end ; des stands et des animations seront proposés au public pour leur faire découvrir le monde du Libre.

L'appel à propositions est ouvert jusqu'au 15 septembre à minuit, vous pouvez proposer une conférence ou un atelier (ou les deux) sur ce lien. Il est également possible de demander un espace pour un stand associatif/communautaire.

À noter

Cette année nous aurons le plaisir d'accueillir Adrienne Charmet et Jérémie Zimmermann de la Quadrature du Net, Benjamin Bayart de FFDN, Stéphane Bortzmeyer de l'AFNIC, Tristan Nitot de CozyCloud (bien sûr sous réserve de contretemps de tout ordre).

Il y aura également au programme beaucoup de 3D et de création graphique ; de l'embarqué et des machins connectés à Internet, de l'Arduino et du RaspberryPi, mais pas que ; du DevOps avec notamment Docker ; des technologies du Web, enfin peut-être pas toutes ; et d'autres sujets techniques.

Côté grand public, nous irons de la culture libre à la libération de nos Internets, en passant par les aspects juridiques et sociétaux du libre en général.

Au programme du week-end du Capitole du Libre

Cette année nous avons plus de salles à disposition, un grand amphithéâtre, donc les thématiques proposées sont nombreuses :

  • Grand public : pour découvrir l'écosystème du logiciel libre ;
  • Enjeux du libre : qu'est-ce que le libre transforme dans notre société ?
  • Internet libre : autohébergement, sécurité et vie privée sur l’Internet ;
  • Culture libre et multimedia : les arts et la culture libres, la MAO, la vidéo ;
  • Poste de travail : environnement de travail, bureautique, utilitaires ;
  • Technique : développement, bases de données, pour la beauté du code ;
  • DevOps : inaugurée en 2014, sera renouvelée et abordera Docker, le cloud libre ;
  • Internet Of Things & embarqué : (re)découverte des Arduino, Raspberry Pi, objets connectés, mais aussi l'embarqué ;
  • Technologies Web : NodeJS, ReactJS, AngularJS, le Web change tous les jours ;
  • Créations 2D & 3D : Blender, FreeCAD, Krita, Gimp, Inkscape, Synfig, la réalisation d’œuvres artistiques avec des outils libres.

Comme chaque année, le rendez-vous de la communauté francophone de KDE et de Qt sera présent grâce à Akademy-FR.

Quelques révélations

Le Blender User Group de Toulouse est en train de vous concocter un programme sur les outils libres de la création graphique et l'animation avec notamment François Grassard (que nous sommes tous les ans ravis d'accueillir).
Le célèbre modeleur CAO, FreeCAD sera également à l'honneur avec des conférences, des ateliers et la venue du développeur principal Yorik Van Havre.
La communauté OpenPandora, présente à l'édition 2013, proposera de découvrir le successeur de la Pandora, la Pyra si les aléas naturels ne s'en mêlent pas.

D'autres surprises sont également dans les cartons …

Télécharger ce contenu au format Epub

Lire les commentaires

Jeu La Piste d'Andor / Andor's trail 0.7.1

Jeudi 30 Juillet

Andor's trail (« La Piste d'Andor » dans la traduction française) est un jeu libre (GPL) pour système Android. Il est de type rogue-like, de l'exploration d'un monde bi-dimensionnel médiéval fantastique (villes, campagnes, forêts, sous-terrains, etc.) avec de la résolution de multiples quêtes (dont la quête principale de la recherche d'Andor), de la progression de niveau, des portes, des monstres et des trésors. La version 0.7.1 est sortie en février 2014 et le développement du jeu se poursuit. Sauf erreur, il n'avait jamais été évoqué sur LinuxFr.org, et cette dépêche est donc l'occasion d'en parler un peu.

Sommaire Andor ?

Le Andor dont il est question n'a rien à voir le jeu de plateau Andor de M. Menzel (As d'Or 2013 et Spiel des Jahres/jeu de l'année 2013, très sympa par ailleurs), ni avec le royaume d'Andor de la Roue du Temps de R. Jordan, ni avec le Seigneur des Anneaux ou Star Trek. Probablement plus avec le prénom hongrois qui aurait inspiré un des auteurs du jeu ? Bref dans l'histoire du jeu, Andor est votre frère, qui n'est pas rentré à la maison hier et du coup votre père Mikhail vous envoie charitablement à sa recherche dans un monde plein de monstres et de dangers.

Une histoire et des quêtes

Le principe du jeu est de nous baigner dans un monde riche et cohérent. Initialement à la recherche de votre frangin, vous allez découvrir de nombreux lieux, discuter avec de nouvelles personnes et être confronté à divers dangers. Et surtout être impliqué dans de multiples quêtes allant de « Va m'acheter du pain mon fils » à la recherche de qui empoisonne le pays ou de qui espionne qui entre deux royaumes en guerre. Rapidement vous interviendrez dans plusieurs quêtes en même temps, et vous verrez souvent apparaître plusieurs camps en opposition : les choix que vous faites dans les quêtes pourront avoir des répercussions par la suite. Le jeu comporte actuellement une cinquantaine de quêtes (dont deux encore ouvertes).

Gameplay

Le principe du jeu est donc résoudre les quêtes, ce qui nécessite de parcourir le monde, donc de pouvoir s'y déplacer sans se faire tuer, impliquant la nécessité de s'équiper, conduisant à l'obligation de trouver de l'or, nous amenant au besoin de résoudre des quêtes pour les récompenses ou de dépouiller des cadavres. Bref au début on affronte des abeilles en tremblant dans son pagne, et un jour on fracasse des lézaroïdes par paquets de douze ou on découpe des liches comme si c'était des parts de quiche engoncé dans son armure de plaques avec ses 42 objets magiques +2.

Le repos du guerrier

Dans divers lieux (chez papa ou souvent dans les auberges des villes), il est possible (gratuitement ou en payant un coût initial) de se reposer dans un lit. Et en cas d'incident fâcheux impliquant un arrêt de vos fonctions vitales suite à un débat tranchant avec un inconnu, vous vous réveillerez dans le dernier lit que vous avez fréquenté (ce qui est à la fois pratique car c'est mieux que d'être définitivement mortellement tué mais peut avoir l'inconvénient de vous renvoyer à des km de l'endroit où vous vous trouviez).

Il est bien évidemment aussi possible de faire des sauvegardes dans le jeu.

Le matériel

Sinon on s'équipe d'épées/haches/dagues/bâtons/sceptres/etc., d'un bouclier, d'une chemise/armure de cuir/armure lourde/côte de mailles/etc., d'un bonnet/casque/heaume/etc., de moufles/gants et de bottes, et on est parti à l'aventure. Bon évidemment ça serait mieux d'avoir des bénédictions (courage, vitesse, force, etc.) et de ne pas être maudit/blessé (empoisonnement, hémorragie interne, fracture, fatigue, etc.), et de ne pas partir avec un sac vide : avoir de la nourriture et des potions de soin pour regagner de la vie, des antipoisons et divers autres anti-malédictions. Bref comme dans les jeux du même type, une douzaine de porteurs cachés doivent transporter vos 8 tonnes d'équipement mais on ne les voit jamais. Et en allant chez un marchand vous aurez toujours l'impression que vous représentez 82% des échanges commerciaux mondiaux à vous tout seul en revendant les 832 armes et autres objets de votre inventaire à ce brave marchand qui n'a que 3 articles différents en stock.

Le personnage

N'oublions pas vos caractéristiques propres : le niveau du personnage, les points d'expérience qui permettent de changer de niveau, les points de vie, les points d'action (à quel point vous êtes rapide ou multitâche), vos probabilités de toucher ou de bloquer, votre force et donc les dégâts que vous infligez, et aussi les compétences que vous avez acquises (taper plus précisément ou plus fort, esquiver, marchander, régénérer, combat avec telle ou telle arme, détecter la magie, etc.).

Traductions

Le jeu dispose de traductions (partielles ou totales) en allemand, anglais, espagnol, français, indonésien, italien, japonais, malais, polonais, portugais, portugais brésilien, russe et slovène.

Dans la version que j'ai testée (0.7.1), l'interface est quasi-totalement traduite en français, mais les quêtes sont encore décrites en anglais. Il est de fait difficile de jouer réellement sans lire l'anglais un minimum.

Code et ressources graphiques

Le projet est écrit en Java et le code est placé sous licence GPLv2.
Pour les ressources graphiques, la situation est plus variée : domaine public, GPL, diverses Creative Commons, etc.

Initialement j'ai testé ce jeu en profitant de vacances hors ligne il y a quelques mois, avec les critères suivant : il est libre, disponible dans F-Droid et installable sans compte Google, ne nécessite pas d'accès réseau, ne nécessite pas une version dernier cri d'Android, ne demande pas de permissions exorbitantes (juste le droit de charger/sauvegarder), avait de bonnes critiques et est assez riche. Bon, évidemment, je ne vous cache pas que ce type de jeu consomme pas mal de temps pour progresser (avec parfois un côté répétitif) et tout visiter. Il est par contre facile de s'arrêter/reprendre à n'importe quel moment.

Télécharger ce contenu au format Epub

Lire les commentaires

Proposez des présentations pour PyConFR 2015: la date butoir est reportée !

Mercredi 29 Juillet

PyConFR 2015, la conférence annuelle francophone consacrée au langage de programmation Python, se déroulera cette année à Pau dans des locaux d'exception à l'EISTI du 17 au 20 octobre 2015.

La manifestation est comme toujours gratuite et se veut la plus accueillante possible pour tout le monde.

Si ça n'est pas assez cher pour vous, vous pouvez sponsoriser.

Si vous avez besoin d'un coup de pouce, l'AFPy propose des bourses.

Jusqu'ici rien de plus que ce que la précédente dépêche annonçait en juin dernier, cependant je viens de recevoir un courriel important concernant la conférence (report de la date butoir pour les soumissions de conférences), et j'ai cru utile de lui donner la plus grande audience possible en le recopiant en seconde partie.

Hello !

Chaque année nous refusons des confs, par manque de place, (très peu par manque d'intérêt, ou pour cause de hors sujet).

Nous avons déjà une cinquantaine de propositions de talks de très bonne facture et l'on pourrait s'arrêter là, cependant cette année nous avons la chance d'être accueillis dans un lieu qui dispose de 3 salles !, nous pouvons augmenter le nombre de slots.

Donc toi qui était en vacances (donc débordé) et qui a loupé la deadline !

Donc, toi là qui a hésité, oui toi là, qui t'es dit j'essaierai bien de proposer un slot, mais j'hésite genre :

"je ne suis pas une star"

"je ne suis pas core-dev" Python

"Je ne suis pas un conférencier confirmé, en fait je n'ai jamais fait de conf, mais j'aimerais bien me jeter à l'eau"

La PyCon c'est aussi donner l'occasion à tout un chacun de venir partager ses connaissances, son amour du Python, ses tips and tricks, faire connaître ton framework préféré etc
Ce n'est pas pour rien que l'entrée est gratuite, que c'est ouvert à tous, c'est une volonté délibérée, l'AFPy, la communauté Python Francophone n'est pas élitiste (ça ne veut pas dire qu'il n' y a pas de stars !)

la PyCon-fr non plus, elle doit être un lieu où l'on partage où l'on apprend quelque soit son niveau !

Alors oui cette année encore il y a des confs de très haut niveau, des confs proposées par des Maîtres de Conférences, des Professeurs des Universités, des confs sur les arcanes de l'optimisation, etc

Bien entendu que comme chaque année il y a des confs super originales genre "modéliser la façon d'accorder une guitare électrique, et venir présenter l'implémentation qui en découle !"

En lisant ce mail tu veux savoir un petit peu ce qui a déjà été proposé, car tu commences à regretter de ne pas avoir soumis de talk

Cette année les sciences sont à l'honneur :
Physiciens, chimistes et autre biologistes ont proposé des talks, il y a une très grande diversité de sujets, c'est impressionnant! !

Tu te demandes si quelqu'un parlera de ton outil préféré du moment, tu te dis que vous êtes tellement nombreux à maîtriser l'outil qu'il y a déjà 5 ou 6 slots sur : Django, devops etc

alors sache que par exemple parmi les gros projets :

Il n' y a qu'une conf orientée débutant sur Django par exemple, a croire qu'il n'y a rien eu de nouveau, dans les dernières versions, à croire qu'il n' y a plus d'optimisations, de trucs à ne pas faire avec

que tout le monde est directement super-efficace avec, et qu'il n' y a plus besoin de tutos, de démos, de bonnes pratiques etc

Ansible 2 est sur le point de sortir et pas un guss pour venir nous en parler

idem pour le vénérable Plone qui passe à la version 5 (oui je sais qu'il y a Plone Conf ) à Bucarest en même temps, mais quand même !

Flask, pas un mot sur Flask !

Parmi les trucs très peu représentés (une seule conf) il y a également les tips and tricks de l'utilisation du langage lui-même.

A croire que tout le monde maîtrise les yield from, que tout le monde sait déjà que faire des annotations et du futur "typing" disponible à priori dans Python3.5,
que tout le monde sait optimiser l'empreinte mémoire, que tout le monde a parcouru de long en large la stdlib.

Tiens un autre exemple tu te sers du IPython Notebook, tu ne sais plus travailler sans, tu as optimisé ton IPython aux petits oignons et tu crois que tout le monde fait pareil

Tu es un dieux du web-scrapping et tu crois que tout le monde a tes heures d'utilisations ou sait ce qu'il est possible faire très efficacement avec deux trois bibli genre scrapy, requests etc

d'après toi dans l'assistance combien de personnes ne maitrisent pas l'outil comme toi, ne savent pas que ça existe, ou aimeraient écouter un talk qui montre l'intérêt de l'outil, voire mieux qui pourrait être suivi d'un atelier sur le sujet

Oui les sujets au dessus ont pour certains déjà été présentés dans le passé, mais tout le monde n'y a pas assisté, que fais tu des absents, des gens qui ont découvert le Python depuis etc

Combien de gens viennent chaque année pour écouter la présentation sur tel ou tel framework, ou autre

Ce qui est sur c'est que le slot, le poster, l'atelier que tu n'es pas venu présenter, et bien personne n'y assistera !
et ça vois-tu il n'y a que toi qui puisse corriger la chose

La deadline est donc prolongée au 09 août 2015

pour l'orga

Jean-Philippe Camguilhem

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie d'ejabberd 15.07

Mercredi 29 Juillet

ejabberd 15.07 vient de sortir et elle apporte un lot de nouveautés significatives.

Avant d'entrer dans le vif du sujet, pour ceux qui ne connaissent pas encore ce projet, il s'agit d'un serveur de messagerie conforme au protocole XMPP. Ce protocole est très vaste (NdM: voir la série d'articles présentant le protocole) et permet d'implémenter de nombreux types de systèmes de messagerie en temps réel, allant de la messagerie instantanée à l'Internet des objets, en passant par le jeu vidéo. C'est dire l'importance de ce protocole, à une époque où la plupart des systèmes de messagerie restent des silos fermés et sans capacité d'interopérer. XMPP supporte nativement la fédération, ce qui signifie que des utilisateurs de différents domaines peuvent communiquer entre eux.

ejabberd est l'un des serveurs XMPP les plus anciens et les plus reconnus. Il est inclus dans de nombreuses distributions Linux et se distingue par le fait qu'il est développé en Erlang. Cette caractéristique lui donne robustesse et fiabilité, mais aussi forte capacité à monter en charge.

Parmi les changements de fonctionnalités, l'accent est mis sur le support du PubSub et de l'archivage des messages. Ce sont aujourd'hui deux éléments fondamentaux du protocole XMPP qui sont en pleine évolution et façonnent le protocole XMPP de demain. Disposer d'un serveur avec des fonctionnalités très à jour sur ces aspects est crucial pour l'avenir du protocole.

Un gros effort a également été fait sur le packaging et la simplicité d'installation, en offrant notamment la possibilité de compiler et d'installer des modules issus de contributeurs externes sans avoir à devenir un expert d'Erlang.

Cette version est l'aboutissement de gros changements survenus durant les six derniers mois sur le projet et cette dépêche est aussi le moment de faire un bilan.

Depuis le début l'année, l'équipe gérant le projet ejabberd a décidé d'accélérer le rythme des mises à jour. Partant du constat que le protocole XMPP a besoin d'une forte accélération de sa couverture fonctionelle pour faire face à la concurrence des services propriétaires, l'équipe a décidé de reprendre le rythme des débuts, à une époque où ejabberd était la plate-forme expérimentale qui a aidé à façonner les premières versions du protocole XMPP. Cela explique aujourd'hui le rythme effréné d'améliorations du projet.

En six mois, le projet a donc connu cinq versions majeures, presque une version par mois, chacune apportant bon nombre de fonctionnalités importantes. Parmi ces améliorations majeures sur ces derniers mois, l'équipe a ajouté:

  • la gestion du langage de programmation Elixir pour le développement de plugin. Plus moderne et plus abordable qu'Erlang, il aide à démocratiser le développement d'extensions pour ejabberd.
  • de nombreuses fonctionnalités pour les administrateurs. La commande de contrôle du serveur ejabberd, ejabberdctl, s'est vu dotée de dizaines de nouvelles commandes. Il est ainsi possible de gérer l'essentiel du serveur, des salons de discussion, du clustering, juste avec cette commande.
  • un gestionnaire de paquets pour la compilation et l'installation de contributions.
  • la gestion des websockets en plus du protocole HTTP standard pour améliorer la réactivité des clients Web.
  • la gestion de l'archivage coté serveur, avec le protocole MAM (Message Archive Management) et évolution rapide pour coller aux derniers changements.
  • un moteur de contrôle de la syntaxe du fichier de configuration au lancement pour aider l'administrateur d'un serveur ejabberd.
  • l'amélioration de l'interaction avec les clients mobiles avec le support de la gestion des flux.
  • une amélioration des performances.

À noter qu'ejabberd est aussi le seul serveur XMPP à inclure une interface SIP minimaliste pour permettre de passer des appels Voix sur IP avec des clients existants tel que celui fourni par défaut avec Android.

Le rythme de développement doit continuer dans les mois qui viennent avec le support de plusieurs nouvelles extensions XMPP prévues dès les mois de septembre / octobre. Tout dépend de votre retour, alors pour ceux qui pensent que l'avenir de la messagerie en temps réel dépend d'XMPP, c'est le bon moment pour apporter votre soutien au projet et faire vos retours.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de QGIS 2.10 « Pisa »

Mardi 28 Juillet

Le projet QGIS a l’immense plaisir de vous annoncer la publication de la version 2.10 de sa suite logicielle de Système d'Information Géographique (SIG) libre.

QGIS est un SIG convivial distribué sous licence publique générale GNU. C'est un projet officiel de la fondation Open Source Geospatial (OSGeo). Il est disponible sur les systèmes d'exploitation GNU/Linux, Mac OS X, Windows et Android et intègre de nombreux formats vecteur, raster, base de données et fonctionnalités.

QGIS est développé en C++ avec la bibliothèque Qt (en version 4 pour le moment). Son architecture lui permet également d'utiliser des extensions codées en Python (version 2) et la très grande majorité des classes du cadriciel de QGIS sont disponibles sous Python.

QGIS est une des applications majeures qui utilisent Qt. Actuellement, l'arborescence des sources (tout confondu) occupe près de 350 Mo. Les contributeurs recensés sur GitHub sont au nombre de 159.

Même s'il reste un logiciel libre, QGIS assure en grande partie le financement de son développement via des sponsors divers qui vont d'entreprises ayant besoin de SIG comme des compagnies aériennes à des organisations gouvernementales (y compris le gouvernement français) en passant par des universités et également des particuliers.

Par ailleurs QGIS s'interface avec de nombreux autres logiciels, que ce soit des bases de données spatiales comme PostgreSQL/PostGIS ou Oracle Spatial, mais également avec un grand nombre de logiciels de SIG libres comme GRASS, SAGA ou encore Orfeo.

Dans la suite de la dépêche, un aperçu des nouveautés vous sera présenté plus en détails ainsi qu'une esquisse des développements à venir. Pour le public non averti, la suite de la dépêche offre également un petit focus sur les SIG et sur QGIS…

Note : le nom du projet est bien QGIS en majuscules et non Quantum GIS ou QGis.

Sommaire Petit rappel pour ceux qui ne connaissent ni QGIS ni les SIG QGIS, c'est quoi ?

QGIS est une suite logicielle de traitement de l'information géographique. Elle permet de générer des cartes, d'analyser des données spatiales et de les publier, en ligne ou sur papier. Elle permet également de réaliser de nombreux traitements et algorithmes sur des données spatiales ou d'autres données liées.

Que signifie SIG ?

Le sigle SIG ­— en anglais GIS — signifie Système d'Information Géographique.

Le traitement de l'information géographique est une niche spécifique des technologies de l'information, au même titre que l'informatique décisionnelle ou l'informatique du calcul scientifique. L'information géographique a pour particularité essentielle de traiter des données spatiales (avec des coordonnées sur un plan ou dans l'espace), souvent combinées avec des données alphanumériques plus classiques.

Un SIG est constitué :

  • de données géographiques et alphanumériques, stockées dans des bases de données spatiales (PostGIS ou Spatialite en logiciels libres, Oracle Spatial/MSSQL en logiciels propriétaires) ou dans des fichiers. Ces données sont souvent gérées sous forme de couches empilables les unes sur les autres pour former des cartes (selon l'ordre d'empilage).
  • d'outils pour afficher, publier et traiter ces données.

Les données traitées dans un SIG peuvent être réparties en trois types distincts :

  • Les données vectorielles : elles sont stockées sous la forme d'ensemble de points et peuvent définir des points, des lignes (ou ensemble de lignes) et des surfaces (polygones).
  • Les données raster : il s'agit de données stockées sous forme matricielle (tableau/bitmap).
  • Les données alphanumériques : on peut ajouter des attributs à un objet vectoriel ou matriciel. Il s'agit d'informations plus classiques qu'on retrouve souvent dans les SGBDR ou les fichiers de tableur (ODS/CSV par exemple).

Pour être plus concret, un SIG et les données qui y sont stockées permettent de répondre à des questions du type (du plus simple au plus complexe) :

  • Quelle est la surface de cet ensemble de bâtiments ?
  • Où sont situées les populations de Vipera ursinii ?
  • Quelle est la distance moyenne entre les bâtiments d'une commune et les routes de catégorie nationale ?
  • Qui ne respecte pas les limites de traitement à proximité des cours d'eau ?
  • Au cours des 50 dernières années, comment a évolué la morphologie urbaine d'une commune ?

Si vous voulez en savoir davantage sur les SIG, je vous invite à lire la rapide introduction aux SIG du projet QGIS qui est très bien faite et agnostique au niveau des outils (et traduite en français qui plus est).

Quels sont les logiciels de la suite QGIS ?

Le projet QGIS est composé de plusieurs logiciels différents qu'il convient de présenter pour mieux comprendre les différents éléments de la suite logicielle :

  • Le logiciel bureautique QGIS (QGIS Desktop) : c'est l'outil principal, le plus important et le plus développé. Il constitue l'interface la plus utilisée. Il permet d'afficher des données, de les traiter et de créer des mises en pages (cartes). QGIS Desktop permet de générer des fichiers projet qui font le lien entre les données, la représentation de ces données, les traitements à effectuer.
  • Le navigateur de données (QGIS Browser) : il permet de parcourir le catalogue des données disponibles. En règle générale, les SIG peuvent traiter un grand nombre de données différentes. Par exemple, une collectivité publique (mairie/conseil régional/métropole) peut facilement héberger plus d'un millier de couches différentes qui sont créées en interne ou récupérées depuis différents partenaires. Pour mieux accéder à cette "masse" d'information, il est essentiel de pouvoir la cataloguer pour faciliter les options de recherche et de sélection. Le navigateur de données QGIS permet de parcourir ce catalogue et de mieux connaître son patrimoine de données géographiques.
  • Le serveur de données OGC (QGIS Server) : il s'agit d'un binaire destiné à présenter des services Web cartographiques à partir des fichiers de projet générés avec QGIS Desktop. Les services web cartographiques visent principalement à fournir des données à des clients via HTTP, en utilisant des protocoles normalisés par l'OGC (WMS, WFS, etc.). Ces clients peuvent être des clients lourds (comme QGIS Desktop) ou des navigateurs web via l'utilisation de bibliothèques Javascript dédiées (OpenLayers, Leaflet, etc.).
  • Le client Web (QGIS Web Client) : QGIS Server ne fournit que des services Web, pas l'enrobage. Pour l'affichage d'une carte dans un navigateur web, il faut un client Javascript dédié et c'est l'objet du client web de QGIS. Ce dernier est aujourd'hui traité un peu à part du client Desktop et du serveur (il dispose d'un dépôt dédié et ne fait pas l'objet de publications régulières comme les trois autres parties de QGIS évoquées ci-dessus).
Qui utilise des SIG ?

Les logiciels de SIG sont utilisés par un grand nombre d'acteurs :

  • Les services de l'État et les collectivités utilisent fortement les logiciels de SIG. Les ministères français en charge de l'écologie et de l'agriculture utilisent QGIS au sein de leurs services et établissements. Ils financent d'ailleurs certaines fonctionnalités.
  • Les agences d'urbanisme.
  • Les entreprises qui ont besoin de gérer un territoire (agriculteurs/forestiers).
  • Les entreprises de logistique (gérer/optimiser les trajets).
  • Les SIG sont utilisés et enseignés dans la plupart des disciplines scientifiques qui traitent de territoire.
  • Vous-même lorsque vous utilisez OpenStreetMap (SIG communautaire) ou Google Maps (c'est une partie du SIG de Google).
Nouveautés par rapport à la dernière version

Je vous invite à parcourir le « visual changelog » qui est plus complet que cette dépêche. Néanmoins, voici quelques-uns des éléments phares des nouveautés apparues dans cette nouvelle version.

Nouveau moteur géométrique

Cette version de QGIS amène des changements profonds dans le moteur chargé de gérer les différents types de géométrie des objets. Jusqu'à présent, QGIS ne gérait pas les géométries courbes (CURVE) qui sont souvent utilisées dans les données de DAO (AutoCAD DXF). Le stockage de l'information de ce type de géométrie est spécifique. Par exemple, on représente souvent un cercle ou un arc de cercle en utilisant uniquement la définition du point central et du rayon et on laisse au logiciel le soin de gérer sa représentation.

Pour afficher des cercles, il fallait construire une polyligne fermée qui prenait la forme d'un polygone régulier avec de nombreux segments (pour "émuler" un cercle). Avec la version 2.10, il est maintenant possible d'afficher des objets courbes de manière plus fine, au moins ceux qui sont stockés dans une base de données PostGIS. Cela permet d'économiser de la place dans la base de données (moins de segments à stocker) mais également d'améliorer le rendu (cercle parfait au lieu de polygone régulier) et la précision.

Ajout d'un constructeur de requêtes pour DBManager

QGIS propose une extension Python pour gérer des bases de données. Cette extension (nommée DBManager) est installée par défaut et permet de lister les tables d'une (ou plusieurs) base(s) de données, d'afficher des informations sur la structure de la table, de ses index, de ses déclencheurs, etc. Elle permet également de construire des requêtes et d'en exporter le résultat directement dans le canevas de cartes de QGIS.

Le requêteur était jusqu'à présent assez orienté vers les spécialistes du SQL (et de ses variantes spatiales). QGIS 2.10 propose maintenant un constructeur de requêtes qui simplifie le travail pour les débutants en offrant un module de création de requête assisté. Ce module est basé sur l'interface présentée par le logiciel propriétaire MapInfo.

Fonction logarithmes dans la calculatrice raster

La calculatrice raster est un outil permettant de réaliser des opérations matricielles sur les couches raster (cf définition plus haut). La version 2.10 de QGIS ajoute les fonctions logarithmes à cette calculatrice (Ln et Log10).

Amélioration des exports DXF

DXF est un format utilisé en DAO. Il est souvent utilisé pour stocker des dessins de plans. Cela fait maintenant trois versions de suite que l'export DXF est amélioré. Au menu de cette version, en plus des corrections de bugs, le module d'export DXF permet:

  • de choisir les couches ou les groupes de couches du projet à exporter.
  • d'exporter l'ensemble des données situées dans l'étendue affichée.
  • d'exporter la symbologie de chaque couche exportée.
  • d'exporter les étiquettes et les polices utilisées.
  • conversion automatique des symboles (formes basiques ou SVG) en blocs DXF.

L'image ci-dessous présente une vue sous QGIS à gauche et l'affichage de l'export DXF dans AutoDesk TrueView sur la droite.

Les champs virtuels peuvent maintenant être mis à jour

Depuis QGIS 2.8, il est maintenant possible d'ajouter des champs virtuels aux couches de données. Ces champs permettent de réaliser des calculs ou des traitements alphanumérique à la volée. Par exemple, vous pourriez vouloir créer un champ affichant le périmètre de chacun des objets (polygones) d'une couche.

Les champs virtuels peuvent se greffer à n'importe quelle couche (qu'elle vienne de fichier à plat ou d'un SGBDRS) et sont stockés dans le fichier du projet. Leur expression est calculée à la volée et le contenu de ces champs est donc dynamique (évolue en fonction des données contenues dans la couche).

Mais lorsque vous vouliez changer l'expression de calcul du champ virtuel, vous étiez obligé de détruire le champ pour le recréer avec la nouvelle expression. Ce n'est plus le cas pour la version 2.10 où vous pouvez changer cette expression directement dans les propriétés de la couche.

Les filtres d'expression peuvent être joués depuis le serveur PostgreSQL

QGIS utilise des expressions pour réaliser des calculs, des tris ou des sélections sur les données alphanumériques. Le moteur d'expression de QGIS est riche et s'étoffe de plus en plus. On peut comparer le système des expressions au système des opérateurs et des fonctions dans le tableur Calc de LibreOffice.

Voici un exemple d'expression:

length("NAME" || ' ' || "SURNAME") > 50

Appliquée à l'outil de sélection, elle permet de sélectionner les objets dont la longueur de la concaténation des champs "NAME" et "SURNAME" (avec un espace entre les deux) est supérieur à 50. Appliquée à l'outil de mise à jour des champs (ou dans un champ virtuel), elle permet d'afficher True ou False selon que la longueur du contenu des champs est supérieure à 50 ou non.

Le moteur d'expression de QGIS a été développé de manière indépendante des différentes sources de données et il comporte donc son propre langage (plutôt un ensemble d'opérateurs et de fonctions proches de ce qu'on trouve dans SQL) ,indépendant des formats de données. L'intérêt est de pouvoir utiliser le moteur d'expression pour tout type de données.

Mais l'inconvénient majeur est que pour faire une sélection d'objets géographiques en fonction d'une expression, il est nécessaire de rapatrier les valeurs des attributs concernés par l'expression et ce, pour chaque objet. Pour une base de données avec plusieurs millions d'enregistrements, les temps peuvent être assez longs.

Pour éviter ce problème, les développeurs de QGIS ont commencé à implémenter la transformation des expressions en filtres SQL qui seront directement joués au niveau du serveur de SGBDR, évitant le parcours de toute la table. Pour l'instant seul PostgreSQL/PostGIS est géré mais les bases du code permettront également de l'implémenter pour les autres SGBDR connectables à QGIS (respectivement Oracle/MS-SQL Server et MySQL).

Auto-complétion des données relationnelles dans les formulaires de saisie

Une des richesses de QGIS est d'offrir un grand nombre de contrôles de formulaire pour la saisie des informations alphanumériques. Par exemple, lorsque vous dessinez une parcelle cadastrale, vous aurez besoin de saisir dans la foulée un tas d'attributs tels que le numéro de parcelle, le nom de la commune sur laquelle elle se trouve, le numéro de section, etc. Pour faciliter ce travail fastidieux, QGIS construit des formulaires de saisie pour guider cette dernière. Par exemple, plutôt que d'écrire manuellement le nom de la commune, QGIS affichera (suivant le paramétrage dans le fichier de projet) une liste déroulante avec les noms des communes. C'est à la fois plus pratique et plus sécurisant pour l'utilisateur qui créé la donnée.

Pour faciliter la création des contrôles de type liste déroulante, QGIS propose d'aller chercher les données dans une table (autre fichier ou table de DB) pour disposer d'une liste toujours à jour (on parle alors de valeur relationnelle).

La version 2.10 de QGIS introduit la possibilité de proposer de l'auto-complétion lors de la saisie d'une valeur relationnelle. Au lieu d'avoir une liste déroulante, on a une entrée texte dont la modification entraîne l'apparition d'une liste déroulante dynamique:

Assistant de graduation de la taille des symboles

Sous QGIS, la taille d'un symbole peut être fixe ou dépendante d'un attribut de l'objet. Par exemple, on peut vouloir représenter le nombre d'habitants d'une ville par un cercle dont le rayon est proportionnel au nombre d'habitants.

Jusqu'à présent, le paramétrage de cette taille était assez basique et il n'était pas possible de visualiser en avance la taille des symboles sans appliquer le style à l'ensemble de la couche et de visualiser le résultat dans la canevas de cartes.

Avec la version 2.10, QGIS permet de construire très finement la taille dynamique du symbole en fonction d'une expression et de pré-visualiser l'aspect global des tailles dans une boîte de dialogue dédiée (un assistant). Cela permet de mieux prévoir la taille des symboles et de gérer leur dimension sans devoir faire de nombreux tests fastidieux.

Dans l'illustration qui suit, on calcule la taille du symbole (un carré en couleur) en fonction d'une formule (somme de plusieurs champs). L'échelle de la taille des symboles est calculée suivant une distribution linéaire des valeurs calculées par la formule. Dans la partie droite, on a un pré-affichage de la taille des symboles sur plusieurs valeurs pour mieux se rendre compte.

Effets de style pour les couches et les symboles

QGIS dispose déjà de nombreux paramètres pour l'affichage des géométries ponctuelles (symboles) ou linéaires et polygonales. Mais régulièrement, des nouveautés font leur apparition. Dans la version 2.10, il s'agit de l'ajout des effets de style.

Ces effets permettent d'améliorer l'affichage global du symbole ou de la couche en permettant:

  • la création d'une ombre portée ou interne en fonction de nombreux paramètres (rayon, rayon de floutage, transparence, couleur de l'ombre, etc).
  • le rendu d'une luminescence interne ou externe.

Voici un exemple d'ombre portée qui augmente la visibilité des objets bâtiments:

Pour l'avenir

QGIS évolue assez rapidement. Le rythme de publication des nouvelles versions est assez intense : tous les 4 mois (environ), une nouvelle version est publiée. Pour ceux qui voudraient avoir une vision plus pointue du futur contenu de QGIS, voici quelques points notables pour la future version de QGIS. Sachant que le gel des nouvelles fonctionnalités est prévu pour la fin septembre 2015, il est probable qu'il y ait d'autres ajouts…

DBManager pour les bases de données Oracle Spatial

Pour rappel (cf point sur le constructeur de requêtes), DBManager permet de lister les tables d'une (ou plusieurs) base(s) de données, d'afficher des informations sur la structure de la table, de ses index, de ses déclencheurs, etc. Elle permet également de construire des requêtes et d'en exporter le résultat directement dans le canevas de cartes de QGIS.

Depuis la version 2.2, QGIS permet de se connecter à des bases de données Oracle (avec son extension spatiale nommée Spatial) mais le plugin DBManager ne supportait pas ces dernières. Ce problème est réglé avec l'intégration du support des bases de données Oracle Spatial dans DBManager.

Formatage conditionnel des cellules de la table attributaire

La table attributaire de QGIS permet de consulter les valeurs des données alphanumériques des données géographiques (pour les couches qui en ont). Jusqu'à présent, cette table d'attributs était assez basique: son rôle était de présenter les données de manière brute.

Dans les versions à venir de QGIS, il sera possible d'utiliser le moteur d'expression pour enjoliver les cellules de la table d'attributs. Au delà de la fonction esthétique, cela permet de visualiser plus rapidement les valeurs qui intéressent l'utilisateur.

Traduction des noms et des groupes de géo-algorithmes (Processing)

Les géo-traitements (Processing) sont arrivés dans la version 2.0 de QGIS. Il s'agit d'algorithmes spécifiques (ou non) à l'information géographique comme l'algorithme du voyageur de commerce ou encore l'algorithme de création de bassin versant sur des données raster. Ils permettent d'effectuer des traitements (ou une série de traitements chaînés) sur un ensemble de données géographiques.

Jusqu'à présent, les noms et la définition des traitements ainsi que des groupes de traitement n'était pas traduisibles. Cela peut poser des problèmes de compréhension car les termes employés par les traitements peuvent être vraiment très spécifiques et très proches du métier qu'ils recouvrent. De plus l'interface de QGIS est généralement bien traduite (cf les statistiques sur Transifex) et tout le panneau des géo-traitements paraissait à part depuis de nombreuses versions.

C'est maintenant réglé: le code a été modifié pour permettre la traduction. Il ne reste plus qu'à traduire le tout…

Export des symboles aux formats PNG et SVG

QGIS est très riche en ce qui concerne le style des symboles. Avec ce commit, il sera possible d'exporter les symboles du gestionnaire de style de QGIS sous forme d'image PNG ou SVG.

L'intérêt est de pouvoir réutiliser facilement ces images dans des légendes personnalisées (y compris dans le gestionnaire de composition de QGIS) ou dans d'autres documents.

Quelques défis à relever

Parmi les choses "sous le capot" qui n'apportent pas grand chose à l'utilisateur final, on peut relever au moins deux challenges de taille pour les développeurs QGIS:

La migration vers Qt5 est en cours depuis au moins deux versions mais actuellement, la version 2.10 de QGIS utilise Qt4 par défaut. Il y a des chances que ce travail aboutisse pour la version 3.0 de QGIS (prévue on ne sait pas encore pour quand mais on s'en rapproche un peu plus chaque jour !).

Le passage vers Qt5 amènera sans doute plus de stabilité pour la version Android de QGIS.

La migration vers Python3 implique le passage du code de toutes les extensions QGIS (et elles sont nombreuses !) de Python2 vers Python3. Ces extensions étant développées de manière libre par rapport au cœur de projet, il faudra un effort substantiel de la part de l'ensemble des mainteneurs. Il y aura sans doute de la casse à prévoir…

Petit retour sur la publication de QGIS 2.10

QGIS a un rythme de publication par dates. Tous les 4 mois, une nouvelle version est publiée. Dans ces 4 mois, il y a une période de 3 mois qui permet d'inclure de nouvelles fonctionnalités. Ensuite, arrive une période d'un mois de gel des nouvelles fonctionnalités qui permet de se concentrer sur la résolution des bugs, permettant de livrer une version avec des nouveautés et avec un minimum de bugs. Dans la période du dernier mois, la version "release-candidate" est rendue disponible dans les "nightly-builds".

Les utilisateurs habituels de QGIS auront remarqué qu'en fait, la version 2.10 de QGIS est sortie vers le 28/06 alors que l'annonce officielle a été publiée le 22/07. Néanmoins, depuis quelques versions maintenant (la 2.6), on assiste au phénomène suivant: à la suite de la publication de la version 2.x.0, des bugs majeurs sont remontés; ils n'ont pas été détectés dans la release-candidate. Dans la foulée, ces bugs sont corrigés et environ un mois après la publication initiale, une version 2.x.1 est publiée en remplacement de la version 2.x.0. Pourtant, QGIS a fortement recours aux tests unitaires automatisés (via Travis CI).

C'est encore une fois le cas avec la version 2.10 et cette dernière a été officiellement annoncée par le release manager une fois que tous les paquets binaires de la version 2.10.1 ont été construits et rendus disponibles sur le site de téléchargement.

Cette technique permet d'éviter de rameuter les utilisateurs finaux sur une version qui présente encore des bugs. Néanmoins ce fonctionnement est pervers: la version 2.x.0 est censée être la bonne !

L'origine du problème semble être le fait que les utilisateurs ne font pas assez de tests sur la version "release-candidate". Cette dernière s'installe pourtant assez facilement: il existe un installeur dédié pour MS-Windows et des dépôts spécifiques pour les OS GNU/Linux. Néanmoins, il semble que la majorité des utilisateurs finaux ne fassent de vrais tests qu'une fois la version stable livrée ce qui décale d'autant la découverte de bugs importants.

Si vous êtes utilisateur de QGIS, je ne peux donc que vous encourager à prendre du temps pour tester la version candidate dès le 26/09/2015. Si vous êtes sous Debian, je vous invite à configurer le dépôt nigthly (http://qgis.org/debian-nightly-release) et à jouer de l'apt-get upgrade aussi souvent que possible. Si vous êtes sous MS-Windows, vous pouvez utiliser l'installeur OSGeo4W et installer le paquet qgis-rel-dev ou qgis-dev. Ces deux paquets n'auront aucune influence sur votre installation stable de QGIS. Vous pouvez également utiliser les versions hebdomadaires des paquets d'installation prêts à l'emploi de QGIS: http://qgis.org/downloads/weekly/?C=M;O=D (la bonne version est la 2.11).

Bien entendu, n'hésitez pas à utiliser le bugtracker de QGIS pour remonter les problèmes.

Conclusions

Au fur et à mesure du temps qui passe, les fonctionnalités de QGIS s'améliorent et s'enrichissent, comme peuvent le montrer les évolutions de cette dernière version stable.

Le rythme de publication de QGIS est assez soutenu et il est parfois difficile de suivre ce rythme pour certaines structures ou pour des utilisateurs non avertis. Dans ce cas, ils peuvent se tourner vers la version "support à long terme" (LTR) qui est la version 2.8 et qui devrait connaître une nouvelle publication (2.8.3) dans les jours à venir.

Petit à petit, QGIS se hisse au niveau des meilleurs logiciels propriétaires de SIG et les dépasse déjà sur certaines fonctionnalités, notamment sur la gestion des styles et sur la gestion multi-threads du rendu graphique.

Voilà, si vous avez envie de vous lancer dans le traitement de données géographiques, n'hésitez pas à utiliser la dernière version de QGIS. Pour éviter d'être déçu par la complexité inhérente au sujet (l'information géographique) et à l'interface du logiciel, je vous recommande de lire le tutoriel/manuel d'apprentissage qui est traduit dans sa très grande majorité en français.

Note: QGIS est un logiciel SIG généraliste. Si vous voulez travailler pour/avec les données du projet OpenStreetMap, il est sans doute préférable de travailler avec les outils dédiés d'OpenStreetMap comme JOSM ou iD même si QGIS sait lire les fichiers issus d'OSM.

Télécharger ce contenu au format Epub

Lire les commentaires

Mozilla lance la deuxième édition du Winter Of Security

Mardi 28 Juillet

Mozilla a récemment annoncé sur son blog l'ouverture des inscriptions pour l’édition 2015 du Winter of Security (MWoS). MWoS est un programme par lequel des étudiants en quête de projets universitaires peuvent travailler avec les projets des équipes sécurité de Mozilla. Chaque projet est encadré par deux mentors et se déroule entre septembre et avril.

Pour l’édition 2015, Mozilla propose six projets (listés dans la seconde partie de la dépêche) qui vont de la sécurité système à la cryptographie, en passant par la réalité virtuelle. Les projets, en anglais, sont décrits sur le wiki de la fondation.

Les étudiants doivent envoyer leur candidature pour le 15 août 2015 au plus tard. Les équipes sélectionnées seront informées début septembre.

  • MIG: Cross-platform log monitoring for threat detection (supervision multiplateforme de logs pour détection de menace)
  • MIG Agent sandboxing (bac à sable pour l'agent de supervision)
  • Menagerie - a collection of tests and demos for security headers and TLS configurations (ensemble de tests et de démos de configuration TLS et d'en-têtes de sécurité)
  • MozDef Virtual Reality Interface (interface de réalité virtuelle MozDef)
  • Mixed content scanning with OWASP ZAP (analyse de contenus avec OWASP ZAP)
  • Certificate Automation tooling for Let's Encrypt (outil d'automatisation de certification pour Let's Encrypt)
Télécharger ce contenu au format Epub

Lire les commentaires

NixOS 14.12, la distribution Linux sans effet de bord

Mardi 28 Juillet

Le projet NixOS a sorti le 30 décembre 2014 une version de sa distribution Linux, la 14.12 ou « Caterpillar » de son petit nom. Cette distribution, « The Purely Functional Linux Distribution », est fondée sur le système de paquets Nix et la collection de paquets Nixpkgs. Nix et Nixpkgs sont utilisables avec d'autres systèmes : Linux, OS X, voire FreeBSD.

Nix permet de gérer son système « sans effets de bord », ce qui permet notamment : des mises à jours réversibles, l'installation de paquets sans droits root, le déploiement distribué, les mélanges de paquets sources et binaires.

Sommaire L'écosystème Nix

Nix permet d'utiliser des paquets binaires, ainsi que des paquets sources, comme sous Gentoo ou Arch. Comme presque tous les systèmes de gestion de paquets, il permet la gestion des dépendances entre paquets. Ses principes de fonctionnement originaux lui permettent d'implémenter de façon sûre des fonctionnalités souvent peu stables ou absentes des autres gestionnaires de paquets. Il s'agit de la poursuite par la communauté du travail commencé par Eelco Dolstra dans sa thèse à la Technische Universiteit de Delft.

Nixos est une distribution Linux utilisant nix comme système de paquets. Elle permet des mises à jour du système réversibles : si une nouvelle version d'un paquet, du système ou de sa configuration pose problème, on peut revenir à une version précédente en une commande. Elle utilise également le langage nix pour la configuration du système, ce qui permet d'intégrer la configuration entre les différents services, mais aussi d'automatiser le redémarrage des services en fonction des changements de configuration.

L'écosystème nix va au-delà d'une simple distribution : nixops permet d'orchestrer des réseaux de machines (physiques ou virtuelles), de façon plus simple et plus fiable que les systèmes classiques tel que salt ou puppet. hydra est un système de construction continue : il s'agit d'un programme qui construit en permanence un ensemble de paquets dont on vient lui soumettre de nouvelles versions. Les paquets à construire sont spécifiés dans le langage nix.

Développer avec nix, ou pourquoi je ne peux plus m'en passer Sus au HACKING.txt

La plupart des projets libres contiennent un fichier HACKING.txt qui indique comment créer un environnement adapté pour le développement du projet. Il faut installer la bonne version du compilateur (parfois avec le patch idoine), les bonnes bibliothèques (elles-même compilées avec les bonnes options par le bon compilateur), puis configurer le projet en fonction de l'environnement (remplacer Makefile.win95 par Makefile.posix suivant le système que l'on utilise).

En plus de ce fichier, il y a généralement une part de savoir implicite comme, par exemple, « évidemment, si tu utilise nginx au lieu de apache comme serveur web derrière un reverse proxy, il faut utiliser le correctif posté le 30/02/2003 sur le forum bulgare par BabaYaga17 et l'adapter de manière triviale à ton cas ».

nix permet de regrouper ces savoirs dans un fichier default.nix, qui indique dans quel environnement un projet est développé. Ce fichier est le même qui sera par la suite utilisé pour créer le paquet à installer. La commande nix-shell permet de se placer dans l'environnement dans lequel le paquet sera construit, qui constitue donc un environnement de développement adapté.

Par exemple nix-shell donne la bonne version de Python et des dépendances.

On peut également utiliser nix-shell pour lancer un shell où certains paquets sont localement installés. Une fois sortis du shell, il n'y a plus trace du paquet dans l'environnement «principal»

$ nix-shell -p rustc these paths will be fetched (64.72 MiB download, 230.03 MiB unpacked): /nix/store/fhy54j59x9mcxn9rjgi6j7w2q6xr769n-rustc-0.12.0 /nix/store/q4kb35wfj35893z8qddlil98yc1akkgc-stdenv fetching path `/nix/store/fhy54j59x9mcxn9rjgi6j7w2q6xr769n-rustc-0.12.0'... fetching path `/nix/store/q4kb35wfj35893z8qddlil98yc1akkgc-stdenv'... [...] $

On garde néanmoins une version du paquet «en cache» dans le /store/ nix. Ainsi, si l'on appelle à nouveau nix-shell avec le même argument, ou si l'on construit un paquet dépendant de celui qui est en cache, on n'aura pas à télécharger celui-ci à nouveau, ni à le reconstruire.

Le résultat : un méta-make

Là où le confort offert par nix-build et nix-shell apparaît, c'est lorsqu'on a besoin de modifier une bibliothèque dont dépend notre projet (ou tout outil utile à sa construction ou à son déploiement). Si tel est le cas, il suffit de modifier le default.nix pour indiquer de prendre la version locale de cette bibliothèque, comme indiqué ci-dessous.

todo exemple override {src = /home/meredith/projet;}

ou

todo exemple override {src = fetchgit {url = /home/meredith/projet; […];}

À partir de ce moment-là, nix-build agit comme un meta-make : toute modification dans le répertoire indiqué (dans l'exemple 1) ou tout commit dans le dépôt git (de l'exemple 2) provoque une recompilation de la bibliothèque, de ses dépendances inverses et du projet lui-même. On fait ainsi entre les projets ce que make fait pour les différents fichiers à l'intérieur d'un projet.

Nouveautés dans l'écosystème nix

La communauté nix continue de s'élargir : depuis la version précédente en avril 2014, de nouveaux contributeurs et contributrices l'ont rejoint et ont apporté leurs contributions sur l'un des dépôts. L'activité sur le canal irc://irc.freenode.net/nixos témoigne d'un gain de popularité avec une affluence de nouveaux utilisateurs. De même, le domaine http://www.haskell.org utilisera bientôt nixops pour orchestrer ses machines.

Du logiciel tout frais

Nixpkgs (et donc nixos) contient des versions récentes de la plupart des logiciels courants. En particulier, un système nixos 14.12 disposera de :

  • Linux 3.14 (la version 4.0 est aussi disponible dans les mises à jour)
  • Firefox 39 (via les mises à jour)
  • Gnome 3.12
  • KDE 4.14
  • systemd 217
  • etc.
Outils autour de Nix

Les outils autour de nix continuent de s'améliorer, en particulier ceux qui permettent d'utiliser le gestionnaire de paquets depuis la ligne de commande. Deux nouvelles surcouches autour de nix-env et nix-build font leur apparition pour les utilisateurs finaux : nox pour la recherche de paquets (et leur installation) et nix-build-view pour l'affichage de la construction des paquets.

Pour les contributeurs de nixpkgs, nox-review et nox-pr facilitent la vie.

nox

nox est une surcouche de nix-env. Cette application permet de rechercher des paquets et de les installer. La commande nox <motif> affiche une liste des paquets correspondants au motif et propose d'en sélectionner un ou plusieurs à installer.

Une commande nox --update devrait bientôt arriver et fournir une alternative plus conviviale à nix-env -u pour les mises à jour des profils utilisateurs, en permettant en particulier de voir pourquoi un paquet donné sera mis à jour.

nox est aussi nettement plus rapide que nix-env, car il garde un cache de l'ensemble des paquets disponibles.

nix-build-view en couleur

Voir l'outil nix-build-view utilisant les ncurses pour un affichage coloré.

upcast

upcast est une réécriture de nixops. Il s'agit, comme nixops, d'un outil permettant d'orchestrer un ensemble de machines (physiques ou virtuelles) par nix. On peut ainsi décrire dans un seul fichier toutes les machines et leurs relations. Par exemple, on peut définir que le serveur web de la machine A utilisera la machine B comme base de données.

Dans les entrailles de Nix

Luca Bruno alias Lethalman a posté sur son blog une série intitulée « nix pills » qui détaille, en anglais, le fonctionnement de nix. La série comporte 18 posts, depuis une présentation générale de nix, jusqu'au Pourquoi vous devriez l'essayer.

Télécharger ce contenu au format Epub

Lire les commentaires

Gérer son espace de travail git avec "gws"

Dimanche 26 Juillet

gws est un outil KISS (script bash, compatible zsh) pour gérer de manière simple un espace de travail composé de plusieurs dépôts git. Ça ne vous parle pas et vous semble être un pitch commercial ? Laissez-moi l'aborder autrement ; si vous vous reconnaissez dans quelques-unes de ces questions, cet outil pourrait vous être utile :

  • Vous avez un dossier ~/dev/, ~/code/ ou ~/workspace/ dans votre répertoire personnel ?
  • Vous y avez cloné dedans plein de dépôts git ?
  • Vous ne savez jamais quels dépôts, branches, commits n'ont pas été synchronisés ?
  • Vous en avez marre d'avoir à faire 17 git pull manuellement le lundi matin au boulot ?
  • Vous déprimez en arrivant dans le train de voir que vous n'avez pas récupéré votre dernier projet sur votre ordinateur portable ?
Comment ça marche?
  1. Premièrement créez dans votre répertoire (~/dev/ par exemple) un fichier .projects.gws avec un contenu de ce style (que vous adapterez à vos besoins bien sûr):
tools/coursera-dl | https://github.com/dgorissen/coursera-dl | tools/peru | https://github.com/buildinspace/peru | tools/q | https://github.com/harelba/q | work/docker-gitlab | https://github.com/sameersbn/docker-gitlab.git | work/neuraltalk | https://github.com/karpathy/neuraltalk.git |
  1. Lancez gws update qui va cloner tous les dépôts manquants :
  2. Hackez un peu !
  3. Lancez gws pour voir l'état de votre espace de travail (dépôts, branches) en un clin d’œil :
  4. Faites éventuellement un pull fast-forward avec la commande gws ff. Vous aurez ainsi avec vous la dernière version de tous vos projets. Très utile avant de partir prendre le train.
  5. Avant de partir du boulot, faites un petit gws à nouveau pour être sûr que vous avez bien synchronisé tous vos changements, par exemple pour retrouver vos fichiers de configuration en arrivant à la maison.

Il y a bien quelques possibilités en plus, mais je vous laisse le soin de lire le README (en anglais) pour la liste exhaustive des possibilités. Juste un petit aguichage/teasing rien que pour vous :

  • La commande gws est utilisable depuis n'importe quel endroit de l'espace de travail.
  • Vous pouvez créer plusieurs espaces de travail différents, faites plusieurs dossiers avec chacun son propre .projects.gws
  • En versionnant le fichier .projects.gws sur github, par exemple, vous pouvez vous retrouver avec exactement le même workspace sur tous vos ordinateurs.
  • Si vous le versionnez, vous pouvez même rajouter le dossier courant (. | … |) dans le fichier .projects.gws pour le surveiller aussi.
  • Il y a possibilité de mettre un fichier .ignore.gws que vous ne versionnerez pas pour filtrer avec des expressions rationnelles certains projets — par exemple les projets du boulot à la maison.
Où je le trouve?

Il est disponible sur Github et empaqueté pour Arch Linux. Pour les autres distributions, c'est un simple script bash, mettez-le quelque part dans votre $PATH. Ou mieux, faites-en un paquet.

PS : Et pour répondre d'avance à la question: «Un script bash de 830 lignes, t'es malade?» je vous réponds: YOLO1.

  1. Mais oui si c’était à refaire je choisirais un autre langage. C'est impossible à maintenir un script bash de cette taille. J'ai dans l'idée, un jour, de le réécrire dans un autre langage et de supporter plus de VCS (mercurial, svn, …) et plus d'options. Un jour… qui sait. 

Télécharger ce contenu au format Epub

Lire les commentaires

Développer des applications mobiles multiplateformes avec Java… avec le framework Codename One

Dimanche 26 Juillet

Codename One est un framework permettant de développer en natif pour iOS, Android, BlackBerry et Windows Phone à partir d'un unique code Java.

Il est open-source (licence GPL avec exception Classpath) et se présente sous la forme d'un plug-in disponible pour les trois environnements de développement majeurs en Java (NetBeans, Eclipse, IntelliJ IDEA (NdM: les deux premiers sont sous licence libre, le dernier existe en version "Community" libre et en version propriétaire). Il a pour particularité d’utiliser le cloud pour la compilation, ce qui évite aux développeurs d'avoir à installer divers SDK ou de posséder un système d’exploitation spécifique indispensable à la programmation des applications pour certaines plateformes mobiles.

Il a été créé par deux anciens ingénieurs d'Oracle, Chen Fishbein et Shai Almog, ceux-là mêmes qui mirent au point la bibliothèque d'interface graphique LWUIT, qui eut son âge d'or à l'heure où le J2ME régnait encore dans le monde de la téléphonie avant d'être détrôné par l'iPhone.

Codename One produit du code natif optimisé, assurant à ses applications de meilleures performances. (NdM: l'accès au code source natif produit n'est pas fourni dans l'offre gratuite de Codename One).

Le plug-in est composé d'une API contenant toutes les classes nécessaires à la conception d'une application mobile, d'un designer, d'un simulateur pour tester les applications sur son ordinateur et du serveur de compilation dans le cloud.

L’une des grandes particularités de Codename One est son architecture dite « lightweight » qui apporte une meilleure solution aux problèmes de fragmentation des plateformes mobiles. Un composant lightweight dans ce cas-ci est un composant écrit entièrement en Java qui dessine sa propre interface tout en gérant ses propres événements et états. Cette manière de faire apporte un énorme avantage en termes de portabilité puisque le même code est exécuté sur toutes les plateformes en plus d’autres avantages. Les composants graphiques de Codename One sont personnalisables.

L’API de Codename One couvre de nombreuses fonctionnalités. On peut y trouver ce qu’il faut pour faire, par exemple, les tâches suivantes :

  • l'interface graphique ;
  • la manipulation de la vidéo et de l’audio (enregistrement comme affichage) ;
  • le stockage ;
  • l'accès à la caméra ;
  • la manipulation d'une base de données SQLite ;
  • la manipulation des services web ;
  • le réseau ;
  • l'accès au cloud ;
  • la lecture des codes barres et QR codes ;
  • l’internationalisation et la localisation ;
  • les notifications ;
  • la manipulation des contacts ;
  • l'accès aux pages web ;
  • la monétisation ;
  • l’accès aux réseaux sociaux ;
  • la géolocalisation ;
  • les tests unitaires ;
  • la création de thèmes personnalisés ;
  • etc.

Codename One est orienté exclusivement vers la conception d’applications métiers et n’a pas du tout été pensé pour créer des jeux. Quelques efforts sont en train d’être faits dans ce sens, mais rien de concret n’est encore disponible de ce côté.

Pour s'y former, vous disposez de la documentation officielle, complétée par de nombreux articles et tutoriels vidéo, ainsi qu'un forum très actif (en anglais). En outre, un livre vient de paraître en français aux éditions D-BookeR.

Télécharger ce contenu au format Epub

Lire les commentaires

Structuration de l'offre de services autour du gestionnaire libre de projets ProjeQtOr

Dimanche 26 Juillet

Depuis 2009 le logiciel libre de gestion de projets ProjeQtOr (fonctions détaillées en seconde partie de la dépêche) a grandi autour d'une communauté grandissante d'utilisateurs et quelques volontaires fortement impliqués.

Conçu et développé par des chefs de projet pour des chefs de projet, ce logiciel apporte aujourd'hui une alternative crédible aux logiciels propriétaires.

Pour pérenniser le produit, développer sa notoriété et garantir la fourniture de services de qualité, son concepteur et développeur principal, Pascal BERNARD, vient de constituer la Société par Actions Simplifiée (SAS) ProjeQtor.

Implantée en région toulousaine, cette société propose des services professionnels à haute valeur ajoutée autours du logiciel libre ProjeQtOr :

  • hébergement en mode SaaS,
  • support professionnel,
  • assistance et formation,
  • réalisation d'évolutions à la demande,
  • fourniture de plug-ins sur des besoins particuliers.

ProjeQtOr est un logiciel libre de gestion de projets, diffusé sous la licence Open Source GPL V3. Son objectif est de regrouper dans un outil unique toutes les fonctionnalités de la gestion de projets, de manière pragmatique, en garantissant une utilisabilité maximale.

Il propose dans sa version actuelle (V5) une couverture fonctionnelle qui a peu d'égaux, même parmi les ténors du domaine :

  • gestion des délais (calcul du planning)
  • gestion des coût (suivi des données financières)
  • gestion des aléas (suivi des incidents, des demandes, du support)
  • gestion de la qualité (production d'indicateurs, génération d'alertes, traçabilité)
  • gestion des risques (identification, qualification et plan d'action)
  • gestion des ressources (affectations multi-projets, répartition de la capacité)
  • maîtrise des engagements (suivi des exigences, couverture par les tests)
  • maîtrise du périmètre (suivi des réunions, des questions, des décisions)

Il est a noter que ProjeQtOr est diffusé sous une seule licence. Toutes les fonctionnalités sont donc disponibles librement.

Télécharger ce contenu au format Epub

Lire les commentaires

Collaborer sur vos documents à l'aide du libre

Vendredi 24 Juillet

Si on travaille avec beaucoup de documents chaque jour, peu importe ce que l'on écrit — whitepapers, manuels, présentations, différents matériels marketing, contrats, etc.— à un certain moment (le plus souvent à la fin) on a besoin d’interagir avec d'autres personnes afin de spécifier ou discuter des détails, réviser ou approuver le travail fait.

Dans ce cas-là on peut procéder de trois façon différentes :

1. Envoyer un mail à l'aide du programme de courrier électronique habituel

Inconvénients : ça prend beaucoup de temps d'envoyer un message, ensuite attendre une réponse, faire des corrections, renvoyer ce message encore une fois et ainsi de suite jusqu'à ce que tous les participants soient satisfaits du résultat.

2. Utiliser un système de contrôle de version comme Subversion ou CVS

Inconvénients : ces utilitaires ne permettent pas de collaborer en temps réel, la version du document est fusionnée avec celle d'origine stockée dans le référentiel.

3. Travailler à plusieurs à l'aide d'un éditeur de documents en ligne comme Google Docs ou MS Office 365

Inconvénients : les deux éditeurs permettent de collaborer sur les documents en temps réel mais les fichiers dans ce cas-là sont stockés sur leurs propres serveurs centralisés.

Cette dépêche aborde en deuxième partie des éditeurs collaboratifs libres disponibles à tout le monde qui permettent non seulement de travailler à plusieurs simultanément sur le même document mais aussi stocker les documents sur son propre serveur en profitant d'un contrôle complet.

Gobby

Page du projet
Code source
Licence : GPLv2+ et ISC

Gobby est un éditeur de texte qui offre une édition de texte collaborative. Avant de commencer à partager et à collaborer sur vos documents, on a besoin de choisir une clé privée et un certificat ou créer une nouvelle paire. On peut ouvrir un document existant ou créer un fichier nouveau pour l'enregistrer au format natif ou l'exporter vers un fichier HTML. L'éditeur textuel offre une prise en charge d'Unicode complète, l'enregistrement des changements automatique et les options de recherche/remplacement avancées. C'est un bon logiciel libre pour la création et l'édition d'un texte brut simple mais si on a envie de mettre le document en forme ce n'est pas ce qu'il faut.

Etherpad

Page du projet
Code source
Licence : Apache v2.0

Etherpad est un éditeur de documents Web qui permet de collaborer sur des documents, les commenter et en discuter avec d'autres à l'aide d'un chat. Il offre les fonctions de mise en forme de texte simples telles que type de police, taille, couleur et style, et d’alignement de texte. On peut importer un fichier existant dans Etherpad et exporter un "pad" vers un fichier HTML, markdown ou plaintext, l'imprimer ou l’intégrer en tant qu'iframe dans une page HTML. Réalisé en JavaScript, Etherpad peut être facilement personnalisé. Il est possible d'utiliser une des instances disponibles ou configurer sa propre application chez l'hébergeur de son choix.

EtherCalc

Page du projet
Code source
Licence : CPAL

EtherCalc est un tableur collaboratif en ligne, écrit en JavaScript qui permet aux utilisateurs de travailler à plusieurs sur un tableur depuis leur navigateur : profiter de nombreuses fonctions de mise en forme, trier et filtrer les données, insérer des fonctions, créer des graphiques. L'application ne demande pas d'inscription. Pour commencer à travailler il suffit d'y glisser un fichier .csv, .ods ou .xlsx. Une fois le travail fini, on peut l'exporter vers un fichier HTML, CSV ou Excel. Le programme est bien sympa mais il manque la possibilité d'afficher tout le contenu, y compris le graphique, sur le même écran.

Framasoft

Page du projet
Code source

Le projet Framasoft offre plusieurs outils pour l'organisation du travail collaboratif, parmi eux Framapad (éditeur de texte collaboratif) et Framacalc (tableur en ligne). Framapad se base directement sur Etherpad, tendis que Framacalc est une instance Ethercalc, donc les fonctions sont presque les mêmes que celles offertes par Etherpad et Ethercalc. Par contre les logiciels de Framasoft sont bien francisés et expliqués.

OnlyOffice

Page du projet
Code source
Licence : GNU AGPL v3

OnlyOffice est une suite bureautique en ligne multifonctionnelle qui inclut les éditeurs de texte, de classeurs et de présentations qui travaillent depuis un navigateur. Les fonctions offertes sont presque analogues à celles des éditeurs de bureau de MS Office mais avec la possibilité de collaborer en temps réel. On peut l'installer à part et intégrer dans toute autre application ou page Web à l'aide de l'API offert ou l'installer avec un système collaboratif OnlyOffice qui offre des possibilités supplémentaires pour la gestion de documents. Si on cherche un éditeur de texte compatible avec le format MS Office et un jeu d'outils complet, OnlyOffice c'est ce qu'il faut.

P.S. Le 7 juillet 2015 OnlyOffice a déployé la version open source dans les nuages, donc tout le monde peut profiter de ses caractéristiques gratuitement sans l'installer sur son serveur.

ownCloud Documents

Page du projet
Code source
Licence: AGPL

OwnCloud Documents est une partie du serveur de synchronisation et partage - ownCloud qui repose sur WebODF. L'application s'installe séparément permettant à cinq personnes de collaborer sur leurs documents en texte enrichi aux formats .odt, .doc, ou .docx depuis un navigateur. On peut partager le lien vers un fichier à l'intérieur de l'espace de travail ownCloud ou utiliser un lien public, en définissant une date d'expiration et un mot de passe, si nécessaire. L'application est simple et intuitive mais pour le moment le jeu d'outils de mise en forme est pauvre.

Télécharger ce contenu au format Epub

Lire les commentaires

Red Hat Enterprise Linux 6.7

Jeudi 23 Juillet

Red Hat a annoncé le 22 juillet dernier la version 6.7 de Red Hat Enterprise Linux (RHEL), distribution commerciale destinée aux professionnels et aux entreprises. Pour rappel, RHEL 6 existe depuis novembre 2010 et, même si RHEL 7 est disponible depuis le mois de juin 2014, cette version est toujours maintenue.

Cette version 6.7 apporte malgré tout des améliorations, principalement du côté de l'authentification centralisée et de la virtualisation. Red Hat avait annoncé la version bêta près de 3 mois auparavant, soit le 6 mai dernier.

Une sélection des nouveautés se trouve en deuxième partie de dépêche.

Sommaire Authentification et interopérabilité

Ces deux thèmes sont souvent regroupés ensemble, car c'est l'un des axes de travail de Red Hat ces derniers temps, semble-t-il : améliorer la compatibilité avec les solutions Microsoft. Pour RHEL 6.7, c'est l'authentification qui est concernée, en particulier côté SSSD (composant d'authentification centralisée), qui gagne non seulement la possibilité d'utiliser un UPN (User Principal Name) comme identifiant pour s'authentifier sur un système, mais aussi d'utiliser les GPO (Group Policy Objects) stockées dans un annuaire Microsoft Active Directory (abordé dans RHEL 7.1).

Moins orientée Microsoft, une autre amélioration de SSSD concerne la notification d'expiration des mots de passe : celui-ci est maintenant capable de signaler qu'un mot de passe a expiré même si l'authentification a eu lieu sans mot de passe. Cela peut par exemple être le cas lors d'une connexion SSH par clé.

Haute-disponibilité

Le chapitre haute-disponibilité comporte deux nouveautés intéressantes : la première concerne Pacemaker, qui est maintenant capable de prendre en compte le serveur web Nginx en tant que ressource. Il est donc possible d'utiliser Nginx en configuration haute-disponibilité entièrement "à la Red Hat".

La deuxième nouveauté concerne le fencing, qui permet de cloisonner une ressource indisponible, parfois en effectuant un redémarrage électrique du serveur hébergeant la ressource en question. Plusieurs nouveaux agents apparaissent dans RHEL 6.7, mais l'un d'entre eux concerne le module iLO de Hewlett-Packard : fence_ilo_ssh. Plus besoin de se connecter à l'OS pour redémarrer le serveur !

Développement

Bien que cette dépêche ne contienne pas de section sur le matériel, la première nouveauté sur le développement concerne du matériel, en particulier les processeurs Intel. Les dernières générations (certains Core, Pentium et Celeron, ainsi que les Xeon v3) disposent en effet d'une fonctionnalité nommée PAPI (Performance Application Programming Interface), dorénavant prise en charge par RHEL 6.7

La bibliothèque C a été améliorée pour éviter un crash durant un diagnostic, ce qui empêche une application de planter pendant l'affichage des informations après une corruption mémoire par exemple.

SystemTap passe en version 2.7 ! Cette mise à jour contient de nombreuses améliorations, comme l'activation et la désactivation à la volée de sondes, la prise en charge de multiples scripts, ainsi que des nouvelles sondes.

Du côté d'OProfile, c'est le memory mapping qui est amélioré, dans le cas d'utilisation de huge pages dans du code Java JIT.

Environnement de bureau

Le paquet scap-workbench fait son apparition dans RHEL 6 ! Déjà présent dans RHEL 7, cet outil graphique (Qt 4) facilite le test d'une machine pour vérifier sa conformité à des pratiques de sécurité définies via OpenSCAP.

Côté performances, PCP (Performance Co-Pilot) a été mis à jour en version 3.10.2. Cela apporte entre autres de nouvelles métriques noyau (mémoire, vCPU, device mapper, NFS 4.1, cgroups), mais aussi la prise en charge de Python 3 et d'extensions d'API en Python. On notera aussi la compression des archives journalières au format xz.

Stockage

⁠ De nouvelles options ont été ajoutées à UDEV, permettant aux administrateurs d'écrire plus facilement des règles de montages, comme par exemple monter les clefs USB en lecture seule.

Ajout de iscsi.safe_logout, empêchant toutes tentatives de déconnexion d'une session ISCSI, lorsque des disques de ce type sont montés.

De nombreuses commandes LVM acceptent la sélection de critères, combinaison entre des opérateurs de comparaison = != > (..), des opérateurs logiques && || (..) et des opérateurs de groupes [ { ( (..) Le « Guide de l'Administrateur LVM » a été mis à jour (ici en version beta) en conséquence.

Toujours à propos de LVM, la fonctionnalité de cache est dorénavant pleinement prise en charge : elle permet d'utiliser un stockage petit mais rapide en tant que cache pour un disque plus grand et certainement plus lent. La note technique renvoie vers la page de manuel de lvmcache(7) pour plus d'informations.

Multipath suit la tendance en permettant maintenant de découper sa configuration en plusieurs fichiers précis. L'option config_dir est disponible dans le fichier central de configuration, permettant de définir un dossier dans lequel tout les .conf seront pris en compte.

L'attente par défaut de 300s avant que Multipath ne prenne en compte une inaccessibilité matérielle peut donner une impression de service défaillant. Les options "delay_watch_checks" et "delay_wait_checks" ont été ajoutées, empêchant ainsi les matériels qui bagotent d'être ré-utilisés immédiatement à leurs retours en ligne. Les vérifications de délais "watch" & "wait" permettent de définir des seuils avant de déclarer ces matériels revenus en ligne comme réellement fiables et utilisables.

Virtualisation

Les machines virtuelles KVM utilisent l'outil kvm-clock comme source de temps pour synchroniser leur horloge avec celle de l'hyperviseur après une veille prolongée. Dans ce cas, les machines virtuelles RHEL 6 avaient quelques difficultés à se synchroniser correctement. En conséquence, kvm-clock a été mis à jour pour que cette synchronisation soit plus fiable.

Dans le jeu de celui qui en fait le plus, KVM est maintenant capable de gérer 240 processeurs virtuels (vCPU) par machine virtuelle.

Cette nouvelle version de RHEL 6 est bien entendu disponible en tant qu'image à déployer comme conteneur ou comme machine virtuelle. L'annonce ajoute que les hôtes certifiés pour cela sont Red Hat Enterprise Linux 7, Red Hat Enterprise Linux Atomic Host, et OpenShift Enterprise 3.

Kernel

Certaines versions de gcc, ainsi que le code nécessaire à la virtualisation, pouvaient dans certaines circonstances générer de trop grandes trames, et engendrer, en combinaison avec d'autres facteurs, des plantages. La pile du noyau a été étendue à 16 ko pour tenir compte d'exigences plus élevées de certaines de ces fonctions.

On peut aussi remarquer la correction d'un problème dans le gestionnaire de ressources de mémoire : MEMCG pouvait conduire à des impasses dans des conditions OOM (out of memory). Ceci pouvait être utilisé pour bloquer le système, lorsque celui-ci est en condition OOM, en lançant de nombreux processus au sein d'un cgroup restreint en mémoire.

L'utilitaire perf a été rétroporté dans sa dernière version, Red Hat 6.7 propose ainsi la même version 3.16 que le projet en amont, incluant toutes les améliorations et corrections des versions 3.13, .14 & .15. Les administrateurs & développeurs peuvent consulter le « Performance Tuning Guide » mis à jour.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Creme CRM en version 1.5

Mardi 21 Juillet

Le 11 mars dernier sortait la version 1.5 du logiciel de gestion de la relation client CremeCRM, soit un an après la version 1.4.

Les principales améliorations sont l'arrivée de la géolocalisation et d'une interface pour téléphones mobiles ; les nouveautés sont détaillées dans la suite de la dépêche.

Description du logiciel

CremeCRM est un logiciel de Gestion de la Relation Client, généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d'un tel logiciel :

  • Un annuaire, dans lequel on enregistre contacts et sociétés : il peut s'agir de clients bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents…
  • Un calendrier pour gérer ses rendez-vous, appels téléphoniques, conférences… Chaque utilisateur peut avoir plusieurs calendriers, publics ou privés.
  • Les opportunités d'affaires, gérant tout l'historique des ventes.
  • Les actions commerciales, avec leurs objectifs à remplir.
  • Les documents (fichiers) et les classeurs.

CremeCRM dispose en outre de nombreux modules optionnels le rendant très versatile : campagnes de courriels, devis/factures/bons de commande/avoirs, tickets, génération des rapports/graphiques…

L'objectif de Creme est de fournir un CRM libre pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés, blocs), et il est très configurable. De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu.

Principales nouveautés de la version 1.5 L'interface pour téléphones mobiles

En tant qu'application Web, Creme a toujours été accessible depuis les smartphones ; mais l'interface très riche de Creme n'est pas optimale sur ces derniers. Une interface optimisée pour les téléphones a donc été ajoutée pour répondre à quelques besoins courants lorsqu'on accède à CremeCRM depuis un mobile, par exemple :

  • Chercher/créer des contacts et des sociétés.
  • Voir les activités en cours, de la journée et du lendemain.
  • Voir vos appels téléphoniques en retard.
  • Pouvoir passer des appels téléphoniques, changer leur statut, en programmer de nouveaux en cas d'échec.

Page d'accueil :

Création d'un contact :

Plus de détails sur le forum officiel dans ce post

La géolocalisation

Ce nouveau module vous permet d'exploiter les informations d'adresse que vous avez renseignés pour vos fiches contacts et sociétés, à travers 3 nouveaux blocs :

  • Le bloc "Carte" des vues détaillées des fiches contacts et sociétés. Il permet de localiser sur une carte les adresses de la fiche.
  • Le bloc "Autour de ce lieu" ce bloc vous permet de voir les Contacts/Sociétés proches de la fiche que vous consultez. Les voisins peuvent être filtrés.
  • Le bloc "Carte" de la page d'accueil. Il permet de voir d'un coup d’œil l'emplacement des Contacts/Sociétés de votre base de données. Comme avec le bloc précédent, les fiches peuvent être filtrées, afin d'affiner l'affichage. Par exemple dans la capture d'écran suivante, le filtre "Clients et Prospects" est utilisé :

Notes : ce module s'appuie sur Google Maps. Il est tout a fait envisageable dans l'avenir de rajouter des blocs qui utiliseraient OpenStreetMap.

Plus de détails ici

Autres fonctionnalités importantes
  • Une nouvelle vue permettant de voir toutes les fiches ayant une certaine propriété (sorte de tag) a été ajoutée.
  • Les filtres et vues de liste peuvent maintenant être privés à un utilisateur.
  • L'import CSV/XLS peut maintenant importer les valeurs des champs personnalisés (champs créés par l'utilisateur). On peut aussi désormais importer des Activités.
  • Dans les filtres, on peut sélectionner plusieurs clés étrangères (ForeignKeys), pour par exemple n'afficher que les factures ayant des statuts spécifiques (c'était déjà faisable de manière pénible).
  • La recherche globale a été améliorée : résultats paginés, possibilité de toujours ignorer certains types de fiches par configuration.
  • Beaucoup de petites amélioration d'interfaces. Exemples : meilleure édition des champs "en-ligne", plus d'auto-complétion dans les formulaires.

Le changelog complet se trouve ici

La future version 1.6

Cette version 1.5 est la dernière version se basant sur Django1.4, dont les jours sont comptés. La version 1.6 se concentre donc sur le passage en Django 1.8, la nouvelle version LTS ; actuellement la version de développement est en Django 1.7.

Télécharger ce contenu au format Epub

Lire les commentaires

Campagne de financement d'un livre par la fondation Creative Commons

Dimanche 19 Juillet

La fondation Creative Commons a lancé une campagne de financement participatif, via kickstarter, pour rédiger un livre qui a pour but de « Montrer au monde en quoi partager peut être bon pour les affaires ».

Le livre veut donc décrire les modèles économiques "ouverts" rendus possibles par l'utilisation des licences Creative Commons et selon leur termes, répondre à la question : comment les créateurs peuvent-ils rendre économiquement viable une activité économique tout en permettant la ré-utilisation de leur créations ?

Le travail se baserait sur l'interview d'une vingtaine d'entreprises qui ont déjà un certain succès en utilisant ce type de modèle, et analyser les réponses pour en tirer des usages et leçons qui puissent inspirer les créateurs.

En fait il s'agit plus que d'un livre puisqu'il intègre une série d'articles, un outil interactif et un livre électronique. Il est dit que le résultat serait disponible sous une licence Creative Commons, mais il n'est pas précisé exactement quels contenus ni quelle licence. Les premiers articles parus sur le site medium sont sous licence cc-by.

La fondation Creative Commons est la fondation qui s'occupe de la promotion des licences Creative Commons, qui proposent un certain nombre de licences permettant le partage de contenus et créations numériques (certains droits réservés, opposé à tous droits réservés). La licence utilisée par Wikipedia est une licence Creative Commons (cc-by-sa), tout comme LinuxFr.org (bien plus à jour car en version 4 !).

Télécharger ce contenu au format Epub

Lire les commentaires

La Semaine du Libre 2015 à Brignoles (83) du lundi 20 juillet au dimanche 26 juillet

Vendredi 17 Juillet

L’association GULLIVAR organise du lundi 20 juillet au dimanche 26 juillet 2015, une semaine d'activités consacrée au Logiciels Libre et composée d’ateliers divers.

Chaque jour de 10h00 à 21h30; Salle des Saints Anges, chemin de San Sumian à Brignoles.

Repas pris en commun vers 12h30 / 13h00, chacun(e) amenant un (ou plusieurs) plat(s) à partager.

Les ateliers commencent à 14h00 sauf ceux de lundi qui commence à 10h00 et à 17h00.

IMPORTANT : nous vous demandons de vous inscrire pour chaque atelier et/ou activité, cela nous permettra de connaître le nombre de participants et de vous informez des détails pratiques de chaque atelier. Pour cela écrivez-vous à l'adresse courriel gullivar@gullivar.org en indiquant vos coordonnées (nom, prénom, adresse de Courriel [e-mail], numéro de téléphone mobile, choix du ou des ateliers) ou en remplissant le formulaire situé sur le site internet de GULLIVAR.

Libre participation aux frais. Programme susceptible de modifications de dernière minute.

Au programme :

  • Lundi 20 juillet : Atelier Cartographie Libre avec OpenStreetMap à 10h00 et Atelier Scribus à 17h00.
    • Dès 10h00 : Atelier de cartographie collaborative animé par Jean Marie Dubosc & Olivier Griffet. Le matin vous participerez à la collecte de données sur le terrain à l’aide de votre smarphone avec l’application Mapillary et/ou OSM tracker installée ou de votre GPS, des field paper, sinon un simple carnet de notes peut aussi faire l’affaire !
    • L’après-midi, après une présentation du projet vous apprendrez à réaliser une carte de votre ville/village à l’aide de l’application en ligne ID ainsi qu’avec JOSM qui permet de travailler avec les images Bing, les données du cadastre et celles recueillies par votre Smartphone/GPS.
    • À 17h00 Yves Specht animera un atelier avec Scribus un logiciel de PAO. Thème de l'atelier : Réaliser une carte de visite.
  • Mardi 21 juillet : Atelier Bureautique Libre Office Writer (équivalent Word) par Eric Rojas. Thème de l'atelier : Création d'un livret de Fables illustrées.
  • Mercredi 22 juillet : Atelier Bureautique Libre Office Calc (équivalent Exel) par Eric Rojas. Thème de l'atelier : Création d'une feuille de facturation évoluée avec toutes les données enregistrées.
  • Jeudi 23 juillet : Install party GNU/Linux Mageia 5; Ubuntu 14.04 LTS et autres distributions. Une journée complète pour tester, installer ou migrer vers une distribution Gnu/Linux récente sur votre ordinateur PC fixe ou PC portable.
  • Vendredi 24 juillet : Atelier retouche photo avec Gimp par Eric Rojas. Thème de l'atelier : Photomontages avec gestion de calques, des sélections et retouches colorimétriques.
  • Samedi 21 juillet : Atelier Programmation Python animé par Eric Rojas et Jérôme Décamps. Thème de l'atelier : Création d'un jeu 2D multijoueur en réseau avec Python : utilisation de la bibliothèque Python [socket](https://docs.python.org/2/library/socket.html= pour les communications réseau et de Pygame pour l'affichage graphique et le son.
  • Dimanche 22 Juillet : Jeux libres (LAN Party) en réseau. Venez jouer avec le jeu 2D développé le veille et découvrir les jeux en réseau libres sous Linux : Tworld, nexuiz, Openarena, etc…
Télécharger ce contenu au format Epub

Lire les commentaires

Variation 1.3 et nouveautés

Vendredi 17 Juillet

Variation est un logiciel de gestion de dossiers d'usagers adapté au secteur du social et médico-social. Il s'adresse par exemple aux structures d'hébergement ou d'emploi de personnes handicapées, au suivi à domicile d'adolescents en difficulté, aux maisons de retraite, etc.

La particularité de Variation par rapport aux autres logiciels du secteur est d'être un outil de construction d'applications : à l'installation, le vide règne ; il est de la responsabilité d'une personne compétente en gestion de ces établissements de placer les champs de saisie et autres agendas dans les bons onglets. C'est ce que nous appelons le « paramétrage » d'une solution particulière adaptée à un établissement particulier.

Depuis l'article de l'an dernier dans ces mêmes pages, nous avons travaillé d'une part à la création de paramétrages (que nous appelons « Arrangements » pour rester dans le thème musical) pour quelques catégories d'établissements répandues (MECS, SESSAD, CHRS) et d'autre part sur un outil d'import/export de ces arrangements afin de pouvoir les redistribuer plus facilement.

Quelques autres nouvelles en vrac :

  • la forge de l'Adullact a adopté le projet,
  • nous avons eu le plaisir de présenter notre solution aux RMLL de Beauvais en début de mois,
  • les manuels d'utilisation sont désormais en téléchargement libre,
  • nous travaillons maintenant à diverses améliorations de l'interface web.
Télécharger ce contenu au format Epub

Lire les commentaires

Sortie du noyau Linux 4.1

Jeudi 16 Juillet

La sortie de la version stable 4.1 LTS du noyau Linux a été annoncée le 21 juin 2015 par Linus Torvalds. Le nouveau noyau est, comme d’habitude, téléchargeable sur les serveurs du site kernel.org. Le détail des évolutions, nouveautés et prévisions se trouve dans la seconde partie de la dépêche.

Sommaire En bref Annonces des versions candidates par Linus Torvalds RC-1

La version rc-1 est sortie le dimanche 26 avril 2015.

Cette fenêtre d’intégration a été normale et je publie, conformément au planning prévu. Mes quelques jours de voyage n’ont pas interféré, car j’avais toujours accès à Internet.

La fenêtre d’intégration est assez normale aussi par rapport à ce qui a été fusionné.
À juste regarder la taille, on se dit que ça va tout juste rentrer — alors que la 4.0 était un peu plus petite que d’habitude — la 4.1 semble pile dans la fourchette normale des deux dernières années. Et les statistiques des correctifs aussi ont l’air normales : le gros des changements concerne les pilotes (à peine moins de 60 % des correctifs), avec des mises à jour d’architecture autour de 20 % et le reste est disséminé un peu partout.

Aucune nouvelle fonctionnalité fracassante ne me vient à l’esprit, même si la prise en charge initiale de l’ACPI pour arm64 semble amusante. Selon vos intérêts, votre appréciation de « grande nouveauté » peut évidemment différer de la mienne. Il y a beaucoup de travail partout et certains points pourraient bien faire une grande différence selon vos usages.

Donc, allez-y, testez. Même une rc-1, aussi brute qu’elle puisse parfois être, a tendance à être de bonne qualité. Ce n’est pas si effrayant. Promis.

Linus

RC-2

La version rc-2 est sortie le dimanche 3 mai 2015.

Ces derniers temps, les rc-2 ont été plutôt petites — ressemblant plus à des rc tardives. Il fut un temps où je ne pouvais même pas poster le journal abrégé, parce qu’il était trop long. Ça n’a pas été le cas pour les quelques dernières versions.

Je pense que les gens ont tendance à prendre un moment de repos après la fenêtre d’intégration, parce que les rc-3 ont tendance à être un peu plus grosses à nouveau. Mais c’est peut-être aussi parce que je suis devenu meilleur à dire « la fenêtre d’intégration est terminée, je n’accepte pas les traînards » ou que les gens respectent mieux la fenêtre d’intégration. Quelle qu’en soit la raison, le temps des énormes rc-2 semble être heureusement révolu.

Donc, le cycle de développement de 4.1 correspond à ce nouveau modèle. Même si elle n’est pas aussi petite que, disons, la 3.19-rc2 ne l’était (elle était vraiment exceptionnelle), la 4.10-rc2 [sic] est plutôt petite et tout a été assez calme. Le diffstat est plutôt plat et propre, à l’exception notable du nouveau prng basé sur sha512 pour s390. Je suppose que j’aurais dû prendre aussi tout ça en main. Mais le reste a vraiment l’air de petits correctifs, pas de gros nouveaux morceaux de code.

Comme d’habitude, c’est un mélange de correctifs de pilotes, de mises à jour d’architectures (avec s390 se démarquant à cause d’un changement sur prng) et d’un peu de systèmes de fichiers et de réseau. Le journal abrégé ci-joint contient les détails, il n’y a rien de particulièrement inquiétant. Jusqu’à présent, la 4.1 a l’air plutôt normale.

Linus

RC-3

La version rc-3 est sortie le dimanche 10 mai 2015.

Et une version de dimanche de fête des mères pour vous, que vous soyez maman ou non. Car hé, c’est dimanche après-midi une fois encore et c’est juste comme ça que sortent mes versions -rc.

Rien de particulièrement effrayant ou inquiétant n’est à signaler, bien qu’il y ait de petites réparations un peu partout. Certaines sont les régressions de cette fenêtre d’intégration et d’autres sont plus vieilles. Et certaines sont si vieilles que j’ai presque pensé « si c’est cassé depuis 2011 et que tu le remarques seulement maintenant, ça aurait peut-être pu attendre la prochaine fenêtre d’intégration ». Vous vous reconnaîtrez (et les autres aussi, s’ils lisent les messages de commit — votre honte s’y trouve).

Le journal abrégé en annexe donne un aperçu honnête et il n’est pas trop gros. Comme vous pouvez le voir, c’est surtout des pilotes, avec une poignée de mises à jour d’architecture (surtout ARM). Et une poignée de trucs divers : outils de performances, documentation, systèmes de fichiers. La mise à jour d’infiniband est un morceau important des pilotes, on a eu des trucs retardés à cause de changements dans la maintenance.

Allez-y, testez. À la -rc3, les choses devraient être plutôt sans danger et ce serait le moment de vérifier que tout fonctionne correctement, si vous n’avez pas déjà testé un des noyaux de développement précédents.

Linus

RC-4

La version rc-4 est sortie le lundi 18 mai 2015.

Celle-ci a raté ma publication dominicale habituelle, parce que j’étais sorti presque toute la journée d’hier. De plus, il y avait une régression de la mise en veille qui semblait devoir recevoir un correctif imminent, donc ça ne me dérangeait pas de faire une publication tard dans la soirée, dans l’espoir d’une rustine supplémentaire.

Ça y est, correctifs de dernière minute et tout. Le patch rc-4 est un peu plus gros que les précédents, mais ça semble dû principalement à des aléas temporels normaux — simplement la fluctuation liée à l'arrivée de l’arborescence des sous-mainteneurs — et le fait que la rc-4 contienne les correctifs de Greg dans diverses arborescences de pilotes et les correctifs de Davem concernant le réseau, de sorte que la taille légèrement plus importante n’est pas représentative de soudains problèmes.

Bien que les pilotes et le réseau dominent les changements, il y a une poignée de changements épars : mises à jour des systèmes de fichiers (btrfs, nfsd), mises à jour d’architectures (principalement arm, arm64 et mips) et d’autres changements divers.

Allez-y et testez et avertissez chacun de la moindre régression trouvée.

Linus

RC-5

La version rc-5 est sortie le dimanche 24 mai 2015.

Je suis de retour à mon habituel calendrier dominical et la rc-5 est de retour à sa taille habituelle, après une légère augmentation de la rc-4.

Les choses semblent assez normales. Nous avons à peu près deux tiers de mises à jour de pilotes (gpu, infiniband, audio, réseau, scsi, température) et quasiment la moitié de ce qui reste est une mise à jour du réseau. Le reste est principalement des mises à jour d’architecture et quelques correctifs des systèmes de fichiers. Mais tout cela est plutôt restreint.

Donc, nous sommes dans les temps pour une 4.1 normale, si ce n’est que le calendrier de la prochaine fenêtre d’intégration semble se télescoper avec nos vacances familiales annuelles. Donc nous allons voir comment ça va marcher. Je pourrais finir par retarder la publication juste pour éviter cela (ou simplement retarder l’ouverture de la fenêtre d’intégration). Je n’ai pas encore décidé.

Mais s’il vous plaît, continuez à tester.

Linus

RC-6

La version rc-6 est sortie le dimanche 31 mai 2015.

Ça a été une semaine plutôt normale, bien que je ne puisse pas dire que les rc aient précisément déjà commencé à diminuer. Non, les rc n’ont pas été suffisamment grandes pour commencer un cycle de publication, et les choses ont été plutôt calmes, mais je serais plus heureux si l’on n’avait pas de bruit dans le RAID 5 et le device-mapper à cette étape.

Cela dit, ce n’est pas comme si la rc-6 était une grosse rc, et les choses paraissent normales. Il s’agit pour la moitié environ de pilotes (principalement des cibles SCSI, du réseau et du graphique, plus les modifications raid et dm mentionnées plus haut, avec d’autres corrections diverses.)

Le reste est assez également réparti entre les mises à jour d’architectures (alpha sort du lot), des mises à jour de systèmes de fichiers (xfs, cifs et overlayfs) et « divers » (réseau, l’outil de mise à jour de turbostat et la documentation).

La plupart des correctifs sont plutôt petits. Le journal abrégé est joint, il donne une bonne idée des choses que nous avons ici.

Linus

RC-7

La version rc-7 est sortie le dimanche 7 juin 2015.

Encore un dimanche, encore une rc.

Normalement, la rc-7 tend à être la dernière rc, et il n’y a pas grand-chose qui mérite notre attention ce coup-ci. Cependant, nous avons encore quelques régressions et, comme je l’ai mentionné la semaine dernière, mes vacances familiales annuelles arrivent. Nous aurons donc une rc-8 et une semaine supplémentaire avant que la rc-8 soit vraiment publiée.

Ça s'est agréablement calmé cependant et la rc-7 vaut certainement la peine d'être testée pour vérifier que tout fonctionne pour vous. Parce qu'on est sacrément proche de la rc finale et qu'elle devrait être assez sûre à tester. Les changements apparus la semaine dernière sont plutôt restreints. Le journal abrégé annexé devrait vous donner un aperçu de ce qui se passe. Beaucoup d'entre eux sont des correctifs d'une ligne, avec quelques patchs légèrement plus gros sur certaines architectures (des contraintes de performance sur x86, quelques mises à jour sur sparc) ainsi que des pilotes staging.

Linus

RC-8

La version rc-8 est sortie le dimanche 14 juin 2015.

Je suis en vacances, mais le temps ne s’arrête pas pour autant et c’est dimanche, donc le moment de sortir une rc que j’espère finale.

Il se trouve que je voulais faire traîner la publication d'un semaine de sorte à ne pas avoir la fenêtre d'intégration pendant mes vacances — nous avons encore quelques correctifs dans md. Comme Neil Brown l'a dit : « N’est-ce pas un bon cycle pour md :-( »

Les correctifs sont assez petits et j’espère que tout va bien maintenant. Mais une semaine supplémentaire pour tester ne va certainement pas faire de mal, donc une rc-8 est tout à fait convenable.

Il y a aussi diverses choses qui avancent, dont les correctifs MIPS, ainsi que de petites mises à jour ARM, s390 et x86.

Mais le gros est — comme d’habitude — les pilotes, et non, ça ne vient pas du camp md — ces correctifs sont très petits. Il s’agit principalement d’ethernet, de slave-dma, de spund, ainsi que des correctifs drm et d’autres choses.

Il y a aussi quelques correctifs de réseau et diverses petites choses.
Le journal abrégé est joint comme d’habitude, pour les personnes qui veulent un aperçu des détails.

Quoi qu’il en soit, c’est pas comme s’il y avait une tonne de correctifs. La plupart d’entre eux sont de petits correctifs, donc je ne pense pas que ce soit particulièrement inquiétant. C’est simplement que la rc-8 sort non seulement à cause de mon agenda, mais aussi à cause de petits détails qui surgissent sans cesse.

Faisons en sorte que la semaine prochaine soit vraiment calme. Le pouvons-nous ? Parce que je vais très activement éviter de lire mes courriels.

Linus

Version finale

La version finale est sortie le dimanche 21 juin 2015.

Bon, après une semaine très tranquille après la publication de la rc-8, la version 4.1 finale est maintenant publiée.

Je ne suis pas sûr que ce fût calme parce qu’il n’y avait aucun problème — touchons du bois — ou parce que les gens ont décidé d’épargner mes vacances, mais, quelle qu’en soit la raison, j’apprécie. Ça n’est pas comme si le cycle de sortie de la 4.1 avait été particulièrement pénible, espérons que la semaine supplémentaire de décantation ait permis d’en faire une meilleure version. Ça n’est pas une mauvaise chose, puisque la 4.1 est une version LTS.

Quoi qu’il en soit, depuis la rc-8, nous avons eu des changements vraiment petits, principalement quelques corrections finales de pilotes (le son HDA, le drm, le scsi target, la crypto) et quelques petits correctifs divers. Le journal abrégé ci-joint est probablement le plus petit jamais écrit. Je ne m’en plains pas.

Et cela signifie évidemment que la fenêtre de fusion de la 4.2 est maintenant ouverte.

Linus

Les nouveautés Architecture Gestion du matériel Qualcomm MSM8916

Le Snapdragon 410 est la nouvelle famille de systèmes monopuce ARM 64 bits (ARM v.8) de chez Qualcomm. Le MSM8916 intègre un ARM Cortex A53 quad-cœurs, gravé en 28 nm, d’une fréquence de 1,4 GHz par cœur. Il adopte une architecture de type Harvard, en séparant les données et les instructions du cache de niveau 1. Il incorpore un GPU Adreno 306 et un DSP Hexagon QDSP6.

Il fait partie des nouveaux systèmes monopuces ARM64 à faire leur apparition dans Linux 4.1

Xilinx ZynqMP

Xilinx est un constructeur américain principalement connu pour ses périphériques et puces à logique programmable. Également connu comme étant l’inventeur du FPGA, il se focalise aujourd’hui sur la conception de systèmes monopuces programmables, combinant des cœurs ARM à des FPGA. Cela vous donne la possibilité de rerouter électriquement l’intégralité d’une carte de développement ou de développer n’importe quel périphérique à l’intérieur du FPGA intégré à la puce (un périphérique Ethernet PHY qui gère du PTP par exemple).

Parmi les deux puces les plus connues, nous pouvons citer le Zynq-7000 et le Zynq UltraScale MPSoC, aussi appelé ZynqMP. C’est à ce dernier que nous nous intéresserons.

Le ZynqMP est le premier système monopuce programmable 64 bits de chez Xilinx, il s’agit de la gamme puce haute performance qui dispose d’un processeur quatre cœurs ARM Cortex-A53, des coprocesseurs Cortex-R5 dits temps réels, un GPU ARM Mali 400MP, la gestion de la DDR4. Bref, vous l’aurez compris, c’est une véritable machine de guerre qui fait tout, sauf repasser votre linge :/

Linux 4.1 intègre la gestion de ce nouveau système monopuce. Restent maintenant à venir les cartes de développement et les kits d'évaluation.

L’ajout de la prise en charge de l’Intel Skylake continue

L’outil Turbostat est fourni avec le noyau Linux pour analyser statistiquement les performances des processeurs Intel récents. Il a été amélioré pour les spécificités des processeurs Skylake.

Intel Bay Trail & Cherry Trail

Ces processeurs obtiennent un changement de réglage par défaut, qui donnera de meilleures performances quand il faut de la puissance de calcul, tout en limitant la consommation supplémentaire. Celle-ci peut toujours être maîtrisée avec le profil « powersave ». Concrètement, le « setpoint » par défaut est passé de 97 à 60.

Meilleure gestion de l’énergie

Ce noyau a une meilleure gestion de l’énergie pour x86 et ARM avec une meilleure prise en compte de l’ACPI (ARM 64Bits inclus), gestion du futur matériel Intel, gestion des mises à jour pour les domaines de puissance : le noyau peut maintenant gérer plus finement les économies d'énergie, car il connaît la topologie de la dissipation des watts. Par exemple, si le CPU et le GPU sont sur le même die, c'est le même domaine de puissance.

L’architecture arm64 prend désormais en charge l’Advanced Configuration and Power Interface, aussi appelé ACPI. La prise en charge de l’ACPI pour l’ARM a été controversée par le passé : de nombreux développeurs préféreraient utiliser de façon universelle le mécanisme d’arborescence de périphériques pour la détection des périphériques sur cette architecture. L’ajout de l’APCI s’est fait tranquillement cependant et il semble très vraisemblable qu’il y ait des serveurs utilisant l’ACPI en vente dans un futur proche. Cela dit, il reste du travail : le commit de fusion précise que « nous n’allons prendre en charge aucun périphérique pour le moment, donc son champ d’application est assez limité ». Voir Documentation/arm64/arm-acpi.txt pour de plus amples informations à propos de l’ACPI sur ARM.

Voir l'article de LWN.net : ACPI for ARM?, [correctif de la demande d'inclusion], Documentation/arm64/arm-acpi.txt.

La prise en charge de Full DynTicks pour les invités KVM permet de ne plus réveiller le CPU à intervalle régulier et donc permet une meilleure économie d’énergie quand on a des machines virtuelles en fonctionnement.

AMD Bulldozer

Amélioration de l’entropie pour AMD Bulldozer, ce qui permettra d’avoir des nombres aléatoires de meilleure qualité pour les opérations de chiffrement.

Changement risqué pour x86

Beaucoup de changements ont été apportés aux appels système, interruptions, etc. pour x86. Un gros effort a été mené pour clarifier et remplacer du code spaghetti en assembleur, vieux d’une décennie, par du C, ainsi que ses dépendances en C. Le code est maintenant plus simple, plus clair, plus compact et donc maintenable.
En raison de la nature des changements sur ces parties critiques, des risques de problèmes peuvent apparaître.

Correction à chaud sur architecture S/390

Gestion préliminaire pour l’utilisation de correctifs à chaud du noyau pour l’architecture S/390. Suppression de la prise en charge du mode 31 bits autrefois nécessaire pour dépasser l’agaçante limite mémoire des 16 Mio.

Équilibrage de charge

La surveillance de la charge par l’ordonnanceur a été retravaillée pour que la charge par processus soit indépendante de la vitesse du processeur. Cela devrait permettre de meilleures décisions pour l’équilibrage de charge selon les changements de fréquence, et améliore la prise en charge des systèmes à processeurs asymétriques comme le récent big.LITTLE où plusieurs types de cœurs se retrouvent dans le même processeur. La technologie big.LITTLE permet de mixer des cœurs à très faible consommation avec des cœurs puissants s’activant à la demande en cas de forte sollicitation. Cela permet d’économiser de l’énergie.

MIPS

L'architecture MIPS prend dorénavant en charge l'adressage XPA. Cela permet aux systèmes 32 bits d'accéder à toutes les adresses de la mémoire physique (40 bits).

Développeurs Utilisation de GCC 6

Le noyau Linux utilise actuellement un fichier d'entête compiler-gccX.h pour gérer efficacement les spécificités propres à chaque version majeure de GCC.

La possibilité de tout fusionner dans un seul compiler-gcc.h est discutée, pour ne pas créer un fichier par version de gcc dû au changement dans la politique de publication de GCC (une version par an). En effet, précédemment, chaque version majeure était due à une évolution marquante et pouvait fortement affecter le noyau.

La nouvelle politique pour GCC est plus pragmatique, avec des versions plus incrémentales et régulières, permettant de profiter des avancées du projets, sans forcément remettre en question de manière profonde le logiciel, et la manière de l'utiliser (raison première d'un fichier par version).

Il reste encore des changements à faire pour rendre le code compatible avec le compilateur LLVM/Clang et la norme C11.

AIO

Les méthodes aio_read() et aio_write() ont été supprimées de la structure file_operations. Les (relativement) nouvelles méthodes read_iter() et write_iter() devraient être utilisées à la place.

Débogage des systèmes de fichiers

Il y a une nouvelle cible « log writes » pour la carte des périphériques (device mapper) qui enregistre toutes les opérations d’écriture sur un périphérique bloc. Il est destiné au débogage des systèmes de fichiers. Voir Documentation/device-mapper/log-writes.txt pour les détails.

User mode Linux

Linux en mode utilisateur — User mode Linux — a vu la prise en compte du multitâche et de la gestion mémoire highmem supprimés. Aucune de ces fonctionnalités ne marchait correctement — voire ne fonctionnait tout court — et les deux étaient des fardeaux à maintenir.

GPIO

Le nouveau système d’« accaparement » du système d’entrées‐sorties à usage général GPIO peut être utilisé pour câbler facilement — et de façon permanente — l’état d’une ligne GPIO spécifique sans nécessiter de pilote. Voir la documentation du correctif pour les détails.

Outil perf

Comme d’habitude, l’outil de mesure de performance a vu une longue liste d’ajouts et d’améliorations ; voir le correctif de la demande d'inclusion pour les détails. Certaines des caractéristiques les plus importantes incluent la possibilité d’attacher des programmes BPF aux sondes noyau, la prise en compte de la fonctionnalité trace des processeurs Intel à venir (« un traceur matériel sous stéroïdes »), la prise en compte de la fonction à venir de surveillance de la qualité de service du cache d’Intel, etc. (Documentation Intel : Processor Tracing).

Suppression du « domaine d’exécution » noyau

Le « domaine d’exécution » a été retiré du noyau. L’idée qui sous‐tendait cette fonctionnalité était de permettre l’importation de caractéristiques étrangères à Linux — des interfaces logicielles de noyaux d’autres systèmes UNIX —, mais elle n’a jamais été très utilisée, et n’a même jamais très bien fonctionné.

Voir l’article de LWN.net : Remove execution domain support.

Minimisation de la taille du noyau

L'usage d'utilisateurs, de groupes et de « capabilities » est optionnel. Cette option de configuration à la compilation est destinée aux tout petits systèmes embarqués qui n'en faisaient déjà pas usage, et qui peuvent donc être allégés de 25 ko environ.

Voir l’article de LWN.net :Linux as a single-user system, [correctif].

Pilotes graphiques libres Direct Rendering Manager

La nouveauté principale pour la partie commune de tous les pilotes graphiques libres est l’ajout d’un allocateur de mémoire graphique « virtuelle » (c’est-à-dire, utilisant la mémoire centrale de l’ordinateur au lieu d’utiliser de la mémoire graphique dédiée). Cet allocateur réutilise l’interface GEM qui est l’interface d’allocation utilisée par presque tous les pilotes graphiques libres. Cette approche a pour unique intérêt d’aider les pilotes de rasterisation logicielle tels que le pilote Mesa/Gallium LLVMpipe.

Grâce à la couche Virtual GEM, il devient possible à LLVMpipe de transférer avec DRI2 le résultat du rendu au serveur graphique X sans effectuer de copies. Cette couche devrait cependant être inutile dans le cas de Wayland et DRI3 qui préfèrent utiliser DMA-buf pour des raisons de sécurité et de simplicité. DMA-buf étant plus générique que GEM, il a toujours été possible de partager de la mémoire centrale avec plusieurs pilotes. Cependant, DRI3 n’est pas encore considéré comme stable actuellement, ce qui est probablement la raison pour laquelle Zach Reizner a décidé de ressusciter le projet d’Adam Jackson, empaqueteur de la pile graphique pour Red Hat, datant de 2012.

Le correctif original permettait également de gérer le partage de tampons graphiques via PRIME (DMAbuf), cependant, plusieurs ingénieurs ont trouvé que Google avait décidé de se servir de cette interface d’une autre façon qui n’est pas sûre vis-à-vis de la cohérence des caches, surtout sur les processeurs ARM. Le résultat de la discussion est que VGEM doit respecter son objectif initial qui est celui proposé par Adam en 2012, LLVMpipe sur DRI2. La gestion de PRIME a donc été supprimée.

Pour que cette fonctionnalité devienne utile, il reste cependant encore à modifier le pilote LLVMpipe pour enfin éviter les copies inutiles des images produites par LLVMpipe à destination du serveur graphique X qui sont particulièrement lourdes avec les résolutions actuelles de nos moniteurs.

Le reste des modifications de la partie commune des pilotes graphiques libres n’est pas aussi intéressant. Pour plus d’informations, vous pouvez consulter les demandes d’intégration DMA-buf, panels et DRM.

AMD/ATI Pilote de rendu (pilote radeon)

Dans cette nouvelle version, le pilote radeon ajoute une gestion expérimentale du Transport Multiflux (MST) sur DisplayPort 1.2. Cela permet de faire transiter des flux (images, son et data) pour différents écrans via une seule sortie (et câble) DisplayPort. Cette gestion a été ajoutée par Dave Airlie (Red Hat) pour les processeurs CAYMAN et (en théorie), les processeurs plus récents. Pour activer cette gestion, vous devrez utiliser l’option noyau radeon.radeon_mst=1.

Une autre fonctionnalité intéressante a été ajoutée pour ceux d’entre nous qui connectent leur carte AMD à une télévision. Les télévisions sont en effet différentes des moniteurs pour ordinateurs, car elles ne reçoivent en théorie que des couleurs RVB dans la plage 16-235 au lieu de 0-255. Cela veut dire que les couleurs 0-16 seront toutes considérées comme absence d’une couleur et 235-255 seront considérées comme sa présence complète. Cette gestion a été demandée durant l’été 2014 par plusieurs utilisateurs. Si vous voulez essayer, il vous faudra invoquer xrandr de cette façon xrandr --output <sortie> --set output_csc tvrgb,

Le pilote radeon exporte désormais beaucoup plus d’informations concernant l’état du GPU. Ces informations sont destinées à être exposées par l’afficheur tête haute de Gallium ou les extensions OpenGL permettant d’exposer les compteurs de performance. Ces informations supplémentaires concernent les horloges mémoire et GPU, ainsi que l’état des différents moteurs d’exécution du GPU (3D/2D, décodage vidéo, DMA).

Pour plus d'informations sur les nouveautés du pilote radeon, vous pouvez consulter la demande d'intégration radeon.

Pilote HSA (pilote amdkfd)

Le pilote amdkfd, qui permet de faire communiquer plus rapidement le GPU et le CPU, permet désormais de gérer plusieurs pilotes graphiques en même temps. C’est nécessaire afin de gérer le futur pilote graphique qui sera prochainement intégré au noyau et qui sera l’unique pilote Linux capable de gérer les nouveaux APU d’AMD (Carrizo).

Pour plus d'informations sur les nouveautés du pilote amdkfd, vous pouvez consulter la demande d'intégration amdkfd.

Intel (pilote i915)

Peu de nouveautés visibles pour les utilisateurs du pilote i915. Les nouveautés principales concernent l’affichage. La première est la gestion dynamique de la fréquence de rafraîchissement (DRRS) pour les plateformes qui le prennent en charge. La seconde est la gestion matérielle de la lecture des tampons graphiques utilisant le Y-tiling avec une rotation de 90° et 270°, en plus des 0° et 180° déjà disponibles sur les plateformes avant Skylake.

Beaucoup de travail de réagencement du code est également en cours. Le travail principal continue sur la gestion atomique du mode graphique avec l’ajout de l’infrastructure qui va faciliter la migration de la gestion actuelle à la gestion atomique.

Du côté de PPGTT (mémoire virtuelle allouée par client graphique), beaucoup d’efforts sont faits afin de gérer des espaces d’adressage supérieurs à 32 bits (4 Gio). En effet, activer un espace d’adressage de 48 bits utiliserait beaucoup de mémoire rien que pour allouer la table de pagination. Du coup, Ben Widawsky travaille à faire l’allocation de cette table de façon dynamique. Espérons que Linux 4.2 apportera la gestion des grands espaces d’adressages qui permettront au GPU d’accéder à toute la mémoire d’un processus 64 bits sans avoir à copier inutilement des zones mémoires ou faire des opérations de réagencement des MMU). Si vous êtes intéressés par PPGTT, vous pouvez consulter les articles de Ben Widawsky sur le sujet qui expliquent en détail l’objectif derrière PPGTT (1, 2, 3 et 4).

Pour finir, les développeurs i915 essayent de fournir l’accélération graphique aux machines virtuelles Xen sans avoir à passer par une virtualisation complète. Les machines virtuelles auront un pilote (appelé XenGT) qui communiquera avec un autre pilote en DOM0 via des hypercalls afin de transmettre les différentes commandes. Le résultat devrait être très performant et proche de ce qu’essaye de faire Ben Skeggs pour le pilote Nouveau.

Si vous voulez en savoir plus, vous pouvez consulter l’habituel compte‐rendu détaillé des modifications de Daniel Vetter (mainteneur i915).

NVIDIA (pilote nouveau)

Du côté du pilote libre pour les processeurs graphiques NVIDIA, l’ingénieur d’NVIDIA Alexandre Courbot a ajouté la gestion de l’IOMMU pour les GPU GK20A que l’on peut trouver dans les systèmes-sur-puce Tegra K1.

Ben Skeggs a également écrit les microcodes nécessaires à la gestion matérielle des contextes graphiques pour la première version des processeurs Maxwell, le chipset GM107. Ces microcodes sont essentiels afin de prendre en charge l’accélération 2D, 3D et décodage vidéo. Les chipsets suivants ont également reçu des modifications afin de pouvoir charger ces microcodes, mais aucune version libre ne peut être écrite, car ces derniers nécessitent un microcode signé par NVIDIA. Ces derniers devraient redistribuer très prochainement les différents microcodes dans le projet linux-firmware.

Avec un peu de chance, NVIDIA redistribuera également les microcodes nécessaires à l’encodage et décodage vidéo ainsi que la documentation des interfaces, ce qui devrait réduire le temps de développement pour ajouter la gestion d’un nouveau chipset ! On se consolera comme on peut pour la perte de liberté et un travail d’audit du code sera encore nécessaire pour garantir qu’il n’y a pas de portes dérobées.

Pilotes graphiques pour systèmes monopuces Qualcomm (pilote msm)

Le pilote msm pour les GPU Qualcomm gagne la gestion des liens DSI et double DSI ainsi que la gestion du vol de mémoire ce qui permet de faire une transition sans à-coups depuis l’animation de chargement — splash screen. La gestion des nouveaux GPU snapdragon 410 fait également son apparition.

Pour plus d'informations, vous pouvez consulter la demande d’intégration msm.

NVIDIA (pilote tegra)

La nouveauté principale du pilote NVIDIA tegra à destination des systemes monopuces Tegra (2, 3 et 4) est la possibilité d'utiliser les compteurs matériels de suivi du rafraîchissement vertical grâce aux points de synchronisation proposés par le pilote et le bloc host1x. Cela devra permettre d'implémenter une gestion plus efficace du page flipping.

Pour plus d'informations, vous pouvez consulter la demande d’intégration tegra.

Renesas (pilote rcar-du)

Le pilote Renesas a reçu beaucoup de modifications de la part de Laurent Pinchart afin de gérer la gestion atomique du mode graphique!

Pour plus d'informations, vous pouvez consulter les demandes d’intégration rcar-du.

Autres

Les pilotes Samsung (exynos) et Texas Instruments (omap) ont tous les deux profité d’une révision de l’architecture du code et de corrections des bogues en vue de gérer la gestion atomique du mode graphique, mais le code n’est pas encore prêt.

Pour plus d'informations, vous pouvez consulter les demandes d'integration exynos et omap.

Sécurité

Lorsque le noyau essaie d’accéder à des adresses qui ne sont pas directement accessibles, la MMU génère une erreur de pagination — page fault exception — et exécute le gestionnaire d’erreur de pagination. Lors de l’accès à des zones mémoires contrôlées par un processus en espace utilisateur, ce gestionnaire vérifie que le code effectuant cet accès fait bien partie d’un tableau listant les parties dans le noyau qui ont effectivement le droit d’accéder à ce type de zone mémoire. Ce tableau contient donc principalement toutes les invocations des fonctions de type copy_*_user().

Ce mécanisme permet au noyau d’accéder de façon sûre aux données en espace utilisateur à l’aide d’une interface restreinte (les fonctions copy_*_user()) sans avoir à vérifier explicitement l’accès à tous les pointeurs avant de les déréférencer.

Chaque module contient son propre tableau listant ces exceptions. À partir de cette version du noyau, le chargeur de module vérifiera activement que toutes les entrées de ce tableau pointent bien vers du code inclus dans le module. Toute entrée pointant à l’extérieur générera une erreur [correctif], Documentation/x86/exception-tables.txt : Kernel level exception handling in Linux.

Audit

Une situation de compétition potentielle dans le code d’audit pouvait tronquer le rapport d’audit après le champ comm et donc provoquer la perte d’informations. Pour de plus amples informations, voir le correctif.

SELinux

La table de hachage contenant la politique SELinux dans le noyau a été convertie en « tableau flexible » (flex_array). Il utilise un nouvel algorithme de hachage produisant une meilleure répartition. Le nombre d’entrées par défaut a également été augmenté. Ces modifications devraient réduire l’impact de la recherche d’une règle dans la politique SELinux dans le noyau et donc réduire globalement l’impact de SELinux. Pour de plus amples informations, voir les correctifs 1, 2 et 3.

Certaines commandes netlink n’étaient pas mentionnées dans la table utilisée par SELinux à cause d’un oubli lors de leur introduction dans le noyau. Ces correctifs corrigent le tir et l’un d’entre eux ajoute une vérification à la compilation pour que la situation ne se reproduise plus. Pour de plus amples informations, voir les correctifs 1, 2, 3, 4, 5, 6, 7, 8 et 9.

SMACK

Les sockets ouvertes par des fils d’exécution dans le noyau sont correctement nommées. Pour de plus amples informations, voir le correctif.

L'appel système keyctl avec l'action KEYCTL_GET_SECURITY retourne maintenant le contexte de sécurité [correctif].

Le mainteneur du module de sécurité SMACK a ajouté à contre cœur un mode « mise en place » qui peut être utilisé pour déboguer la configuration et la politique SMACK. « C'est finalement disponible, c'est dangereux, mais il semble que beaucoup de développeurs ne sachent pas faire autrement, donc j'ai mis ça en place. J'ai essayé de rendre ce mode aussi sûr que possible, mais c'est de toute façon impossible vu que cela reste une tronçonneuse ». Pour de plus amples informations, voir le correctif.

Liste non exhaustive des vulnérabilités corrigées Nouveau matériel pris en charge
  • Générateur de nombres aléatoires : Altus Metrum ChaosKey [correctif].
Réseau eBPF

eBPF est un système universel dans le noyau de machine virtuelle, désormais utilisé pour la classification et le routage des paquets. Cela permet d’avoir plus de débit et moins de latence, particulièrement sur les routeurs.

Plus d'informations dans les correctifs (1, 2) et l'article de Phoronix.

Routage des paquets en utilisant le mécanisme « multiprotocol label switching » (MPLS)

Le mécanisme de routage MPLS (MultiProtocol Label Switching) est maintenant géré par Linux. Correctifs : 1, 2, 3.

Implémentation de la RFC 7217 (IPv6)

La RFC 7217 vient d’être implémentée dans Linux ce qui devrait permettre de garder une adresse IPv6 anonyme (l'adresse MAC n'est pas divulguée dans l'adresse IP) tout en gardant la propriété importante de stabilité de l'adresse lors de la mobilité. Pour plus d'informations, veuillez consulter la RFC 7217.

Systèmes de fichiers Pilote pour les périphériques dits à mémoire persistante

Le pilote basique de mémoire persistante a été incorporé, améliorant la prise en compte dans le noyau des périphériques à mémoire non-volatile de grande taille.
Article LWN.net : Persistent memory support progress.

F2FS

F2FS dispose maintenant du cache en mémoire extent_cache. La fonctionnalité fs_shutdown permet de faire des tests de coupure d’alimentation pour fiabiliser le comportement en cas de coupure à chaud. Dorénavant, le chemin des liens symboliques est stocké inline, c’est-à-dire directement dans le nœud d’index (inode). F2FS permet déjà de stocker des petits fichiers directement dans ces derniers (voir Enable f2fs support inline data). Les liens symboliques étant un cas spécifique de petit fichier (fichier contenant un lien), ce traitement ne s’appliquait jusqu’alors pas à eux. On notera par ailleurs l’activation par défaut du stockage inline à partir de cette version.
Diverses améliorations côté gestion de l’énergie, point important vu l’utilisation de F2FS dans nos téléphones.

Pour plus d'informations, vous pouvez consulter l'article de Phoronix.

BLK-MQ

La gestion des multi-queues a été améliorée, surtout avec le multi-CPU.

EXT4

ext4 est maintenant capable de chiffrer directement les fichiers et dossiers du système de fichiers. Cette nouvelle fonctionnalité permet de se passer de dm-crypt ou eCryptfs, suivant les cas.

XFS

Lors d’un renommage, la source n’est plus supprimée mais remplacée par des blancs (RENAME_WHITEOUT). Cela devrait permettre son utilisation avec le système d'union de système de fichier overlayfs.

Nouveau aussi dans XFS, la prise en charge de l’option FALLOC_FL_INSERT_RANGE par fallocate(), permettant aux applications d’insérer des trous dans un fichier.

Les superblocs par CPU ont été remplacés par des compteurs génériques.

Nouveau verrou inode mmap sur les erreur de page.

Une réécriture de la soumission des I/O directes pour mieux faire attention aux corruptions de données lors des écritures

Amélioration du log des messages

Et les traditionnelles corrections de bogues et nettoyage.

RAID 5/6 pour le Raid Logiciel

Les blocs de 4K sont maintenant gérés. Le cache de bande est maintenant dynamique. Le raid6 peut maintenant faire des cycles lecture/modification/écriture avec de meilleures performances sur des grappes de 6 disques ou plus.

RAID 1

Le sous-système MD (RAID) peut dorénavant gérer les matrices RAID 1 de façon distribuée sur un cluster. Le code correspondant est actuellement marqué comme expérimental, mais il est de toute évidence proche d’un état de production.

Device mapper

Le gestionnaire de périphériques peut maintenant fonctionner comme un périphérique bloc à files multiples, augmentant les performances. Cette fonctionnalité est actuellement désactivée par défaut, mais peut être activée avec la variable de configuration CONFIG_DM_MQ_DEFAULT.

BTRFS

Les systèmes de fichiers de plus de 20 To n’étaient pas gérés correctement à cause d’un problème de gestion de l’espace libre, cela est maintenant corrigé. Des corrections pour la suppression de fichiers de plus de 3 To ont également été apportées.
Enfin, un bogue empêchant le passage d’un niveau de raid à un autre a de même été corrigé.

Tracefs

Steven Rostedt vient d’intégrer un nouveau système de fichiers : TraceFS. Certains administrateurs système ont remonté qu’il y avait un souci à être obligé d’utiliser Debugfs pour pouvoir activer les fonctionnalités de « tracing » du noyau. Pour des raisons de sécurité, certains interdisent simplement l’utilisation de Debugfs.

Tracefs apporte la possibilité d’utiliser les capacités de « tracing » sans l’utilisation de Debugfs et ceci sans casser la compatibilité avec les outils existants.

ZRAM

Le périphérique bloc « zram » peut maintenant effectuer la compression de blocs de données. Voir l'article LWN sur le sujet.

Meilleure gestion des erreurs pour les disques

Le standard ATA de commandes de gestion des disques a une nouvelle spécification ACS-4. Elle permet grâce à la commande NCQ Autosense d’obtenir le même niveau d’information sur les erreurs qu’en SCSI. Le noyau 4.1 implémente cette commande, qui n’est pour l’instant reconnue que par une poignée de nouveaux disques durs.

Virtualisation KVM

Comme d’habitude, la demande d’intégration se fait en deux fois, une pour les PowerPC et une pour les autres architectures.

  • s390 (mainframe IBM) : prise en charge des instructions SIMD, le code de gestion des interruptions a été retravaillé afin de pouvoir récupérer la liste des interruptions et de pouvoir en définir avec des ioctl, ceci afin de permettre la migration d’invité d’un hôte à l’autre. Les clefs de stockage qui permettent de protéger l’accès aux données peuvent être maintenant définies et récupérés dans un invité via de nouvelles ioctl.
  • MIPS : prise en charge des instructions FPU et SIMD.
  • x86 : principalement des corrections de bugs, il y a eu un débat sur le fait que les développeurs KVM se sont permis d’aller mettre du code dans l’ordonnanceur, zone du noyau qui appartient à un autre mainteneur, qui plus est, ce dernier n’était pas du tout content du code. Finalement, le code a été écrit d’une autre façon pour qu’il n’y ait pas besoin de modifier autre chose que KVM.
  • ARM : des corrections pour la migration à chaud, prise en charge des irqfd (ce qui permet d’injecter des interruptions dans l’invité via un descripteur de fichier eventfd) et ioeventfd (qui permet de faire l’asynchrone pour certaines opérations d’entrée/sortie pour lesquelles une opération synchrone dans un invité est très coûteuse comme une demande d’opération DMA) ainsi que le « page aging ».
  • PowerPC : amélioration du débogage, légère amélioration des performances et nettoyage du code pour les processeurs de type Book3S.
Xen
  • Ajout d’un pilote APIC pour gérer plus de 255 processeurs virtuels dans les invités.
  • Amélioration des performances pour les opérations de migration, sauvegarde et restauration de l’état.
  • Prise en charge de la sauvegarde/restauration pour le pilote scsiback/front
  • Mise en place de l’infrastructure pour avoir le xenbus sur plusieurs pages.
VirtIO

Le sous-système virtio a un nouveau pilote virtio-input. Son travail est de collecter et faire suivre les événements des périphériques d’entrée vers un périphérique virtuel.

Le bilan en chiffres

En ce qui concerne les statistiques du cycle de développement du noyau 4.1, le site LWN.net a publié son traditionnel article récapitulatif.

En nombre de modifications, on se situe à 11 664, soit environ 1 500 modifications de plus que la version précédente du noyau, mais reste en dessous de la moyenne de ces derniers noyaux. Cette nouvelle version a ajouté 486 000 lignes de code alors qu’elle en a supprimé 286 000, ce qui a conduit à une augmentation nette de 286 000 lignes. Le nombre de contributeurs s’approche quant à lui au moins à 1 492 auteurs. Il est possible que lors de la sortie, plus de 1 500 auteurs aient contribué ce qui est un nouveau record !

Pour changer, le développeur ayant fait le plus de modifications travaille au nettoyage des pilotes Comedi. Cependant, ce n’est pas l’habituel Hartley Sweeten, mais Ian Abbott qui remporte la palme cette fois. Du côté des développeurs ayant le plus modifié de lignes, Jie Yang se retrouve sur la première marche par son travail de réorganisation du pilote audio Intel.

Au moins 215 entreprises ont participé à l’élaboration de ce noyau. En tête, on retrouve encore Intel, qui a effectué 11,2 % des changements que l’on peut trouver dans cette nouvelle version. En deuxième place, Red Hat a contribué pour 9,2 % des changements. Il est cependant important de noter que les développeurs sans affiliation ont effectué 9 % des modifications, soit juste un peu moins que Red Hat, alors que les personnes non identifiées ont écrit 8,1 % des modifications. On peut donc dire que, bien que le noyau soit majoritairement écrit par des employés d’entreprises, les contributeurs indépendants sont toujours les bienvenus et sont même une majorité !

Appel à volontaires

Cette dépêche est rédigée par plusieurs contributeurs dont voici la répartition :

Mainteneur Contributeur(s) La phase de test Aucun eggman Arch Romain Perier Développeurs Aucun Pilotes graphiques libres Martin Peres Réseau Aucun BRULE Herman (alpha_one_x86) Systèmes de fichiers Aucun BRULE Herman (alpha_one_x86),Mali Sécurité Timothée Ravier Virtualisation Xavier Claude Édition générale Aucun Martin Peres, eggman, Timothée Ravier

Un peu de vocabulaire :

  • le mainteneur d’une section de la dépêche est responsable de l’organisation et du contenu de sa partie, il s’engage également à l’être dans le temps jusqu’à ce qu’il accepte de se faire remplacer ;
  • un contributeur est une personne qui a participé à la rédaction d’une partie d’une section de la dépêche, sans aucune forme d’engagement pour le futur.

Malgré cette équipe importante, beaucoup de modifications n’ont pas pu être expliquées par manque de temps et de volontaires.

Nous sommes particulièrement à la recherche de mainteneurs pour les sections Édition générale, Systèmes de fichiers et Réseau, les précédents n’ayant pas donné de signes de vie pendant la rédaction des dernières dépêches.

Si vous aimez ces dépêches et suivez tout ou partie de l’évolution technique du noyau, veuillez contribuer dans votre domaine d’expertise. C’est un travail important et très gratifiant qui permet aussi de s’améliorer. Il n’est pas nécessaire d’écrire du texte pour aider, simplement lister les commits intéressants dans une section aide déjà les rédacteurs à ne pas passer à côté des nouveautés. La page wiki Rédiger des dépêches noyau signale quelques possibilités pour aider à la rédaction et s’y impliquer (ce que tout inscrit peut faire, ne serait‐ce que traduire^Wsynthétiser les annonces de RC). Essayons d’augmenter la couverture sur les modifications du noyau !

Télécharger ce contenu au format Epub

Lire les commentaires

Squash TM 1.12, la gestion de votre patrimoine de test s’améliore

Mercredi 15 Juillet

Squash TM est un outil libre (LGPL v3) de gestion de son patrimoine de tests applicatif, déjà présenté ici-même, par deux fois. À l’automne dernier, à l’occasion de l’Open World Forum 2014, Squash TM renforçait ses liens avec l’écosystème Libre et Open Source, en s’interfaçant nativement avec PostgreSQL (en plus de MySQL et H2), Bugzilla, trac (en plus de Mantis et JIRA).

Il continue d’avancer à un rythme de deux versions par an désormais et cette nouvelle livraison printanière inclut des améliorations centrées sur :

  • le versioning complet du référentiel de test : l'intégralité du référentiel de test peut désormais être versionée grâce à une nouvelle notion appelée 'Jalon'. La gestion complète des jalons permet de regrouper sous une même étiquette (ex : numéro de version) différents objets de l’application faisant un tout cohérent ;
  • les listes personnalisées : le paramétrage des listes déroulantes dans Squash TM (catégorie des exigences, nature et type des cas de test) peut être réalisé désormais par projet ;
  • l’introduction des « tags » pouvant être ajoutés dynamiquement sur n’importe quel objet pour faciliter les recherches ;
  • des nouveaux cahiers de tests et d’exigences : complètement ré-écrits, ils sont désormais plus performants et générés dans des formats éditables via une suite bureautique.
  • un espace de travail plus large : l’arborescence des dossiers peut désormais être masquée.

Tous les détails sont dans la seconde partie de la dépêche. Sachez aussi que Squash TM a (re)fait son apparition dans le SILL 2015, le Socle Interministériel de Logiciels Libres. Il est en effet assez massivement utilisé au sein de l’administration publique française (pour ce qui est connu), que ce soit au ministère de l’éducation, de la justice, etc.

Récupérer Squash ™

Pour essayer Squash TM (et l’adopter !), c’est toujours aussi facile à partir du moment où vous avez une machine virtuelle Java d’installée. Vous pouvez au choix :

Synthèse des changements

La précédente itération était essentiellement technique afin de pouvoir s’intégrer au mieux dans le SI des grandes et moyennes entreprises qui se tournent toujours plus vers le libre. Cette nouvelle itération de Squash introduit désormais des fonctionnalités demandées par les utilisateurs, à savoir :

  • Versioning du référentiel de test : l'intégralité du référentiel de test peut désormais être versionée grâce à une nouvelle notion appelée 'Jalon'. Grâce aux jalons, vous pouvez notamment organiser vos bibliothèques d'objets par version, créer une nouvelle version du référentiel à partir d'une version existante, synchroniser deux versions, et bien plus ! Pour découvrir ces nouvelles fonctionnalités, vous pouvez consulter le wiki, en commençant par les tutoriaux dédiés aux jalons (en anglais). La gestion des jalons est désactivée par défaut et ne viendra donc pas perturber ceux qui n'en ont pas l'utilité.
  • Listes personnalisées : il est désormais possible de créer ses propres listes d'informations dans Squash TM. Ces listes concernent le champ 'Catégorie' de l'exigence et les champs 'Type' et 'Nature' du cas de test. Ces listes sont gérées dans l'espace d'administration, puis associées aux différents projets. À noter : par défaut les listes standards sont associées aux projets.
  • Nouveaux cahiers de tests et d'exigences : les rapports de type 'Cahier' ont été réécrits et sont désormais générés dans un format Office modifiable. Ils sont également plus performants. Ces rapports sont inclus dans la distribution (les anciens rapports existent toujours mais doivent être téléchargés et installés séparément).
  • Tableau de bord des cas de test : il est désormais possible de cliquer sur les portions des graphiques pour afficher les cas de test correspondant.
  • Tableau de bord des campagnes : un graphique d'avancement réel vs. prévisionnel a été ajouté au tableau de bord de suivi des itérations.
  • Masquer les bibliothèques : l'arborescence des dossiers peut désormais être masquée pour disposer d'un espace de travail plus large, à l'image de ce qui existe dans l'espace des rapports (valable dans tous les espaces).
  • Conserver la mise en forme dans un export : l'utilisateur peut désormais choisir s'il souhaite garder les balises de mise en forme des champs de type 'texte riche' lors d'un export de cas de test ou d'exigence.
  • Paramétrage avancé : les paramètres techniques (ex : taille des pièces jointes) qui devaient initialement être paramétrés dans des fichiers de configuration sont désormais gérés dans l'interface d'administration.
  • L'onglet 'Plan de test' des campagnes/itérations/suites de test a été renommé en 'Plan d'exécution'.
  • Ergonomie : une attention particulière a été apportée pour harmoniser et uniformiser les interfaces, ainsi que pour présenter les différentes informations et attributs d'un objet de manière plus claire.

Cette version embarque également de nombreuses corrections. La liste complète peut être consultée dans le bugtracker du projet Squashtest (Mantis) ou dans la note de version.

Côté technique, le socle de base est mis à jour. À partir de la 1.12, Internet Explorer 8 n'est plus pris en charge et une JVM 1.7 est requise pour l'installation de Squash TM. La compatibilité ascendante de l'application est bien sûr maintenue.

Feuille de route

La prochaine version 1.13 prévue à l’automne 2015 mettra l’accent sur la gestion des exigences avec l’amélioration de l’espace de gestion de celles-ci, un nouveau tableau de bord et la production de nouveaux rapports, dont une très attendu matrice des exigences.

Télécharger ce contenu au format Epub

Lire les commentaires

Red Hat Software Collections 2.0

Mardi 14 Juillet

Red Hat a annoncé, le 4 juin dernier, les « Software Collections » en version 2.0. 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. Une variante communautaire de ce canal est aussi disponible sur le site Software Collections.

Comme chaque canal logiciel de Red Hat, celui-ci est soumis à souscription auprès de la société (un simple abonnement à RHEL devrait suffire). La variante communautaire n'a pas besoin de souscription.

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

Commençons cette rubrique, comme la dernière fois, par aborder le Red Hat Developer Toolset. Celui-ci est mis à jour en version 3.1, et contient les évolutions suivantes :

  • Eclipse en version 4.4.2 ;
  • GCC en version 4.9.2 ;
  • elfutils en version 0.161 ;
  • GDB en version 7.8.2 ;
  • SystemTap en version 2.6 ;
  • Valgrind en version 3.10.1 ;
  • Dyninst en version 8.2.1.

Comme la fois précédente, cet ensemble dispose de ses propres notes de version (en lien de dépêche).

D'autres mises à jour sont néanmoins disponibles pour le développement, comme le passage de DevAssistant en version 0.9.3, et de Thermostat en version 1.2.0. Pour ce dernier, attention : Red Hat signale que la migration de données ainsi que la migration automatique de plug-in utilisateur n'est pas prise en charge de Thermostat 1.0.4 à Thermostat 1.2 !

Côté serveurs

Toujours dans une optique de versions récentes, les mises à jour côtés serveurs sont :

  • MariaDB en version 10.0.17 ;
  • MongoDB en version 2.6.9 ;
  • MySQL en version 5.6.24 ;
  • PostgreSQL en version 9.4.1 ;
  • Node.js en version 0.10 ;
  • Passenger 4.0.50 ;
  • Nginx en version 1.6.2 ;
  • Apache httpd 2.4.12.

On remarquera que Nginx n'est pas passé à la branche stable 1.8, disponible depuis la fin du mois d'avril dernier. De plus, aucune information ne semble indiquer la prise en charge complète de Node.js côté support : les Software Collections 1.2 l'incluaient alors en avant-première technologique.

Côté langages

Ca bouge un peu ici, non pas en termes de nouveaux langages disponibles, mais en terme de versions. Les nouveautés :

  • une nouvelle fournée de Perl, en version 5.20.1 ;
  • PHP 5.6 débarque, en version 5.6.5 ;
  • pareil pour Python, la dernière version majeure est aussi accessible, grâce à la présence de la version 3.4.2 ;
  • enfin, Ruby 2.2.2, accompagné de Ruby on Rails 4.1.5, complètent le tableau.

Les versions un peu moins récentes mais toujours décentes sont encore maintenues :

  • PHP 5.4 passe en 5.4.40 ;
  • PHP 5.5 se retrouve en 5.5.21 ;
  • V8 passe en 3.14.5.10 ;
  • et on disposera de Python 2.7.8.
Télécharger ce contenu au format Epub

Lire les commentaires

Pages