Accueil > Actualité / Informations > Des nouvelles d’Haiku

Des nouvelles d’Haiku

lundi 2 décembre 2013

Voici quelques nouvelles du monde Haiku, le système d’exploitation libre sous licence MIT, anciennement OpenBeOS (version libre de BeOS, qui fut abandonné en 2001, suite à la fermeture de la société Be, qui a également produit les BeBox).

Le port ARM avance au niveau du noyau, l’espace utilisateur suit. Débuté lors du Google Summer of Code de 2009, le port d’Haiku sur ARM continue d’avancer et en décembre 2012, les développeurs ont annoncé que tous les éléments de l’image de base sont compilables sur ARM. Il reste cependant beaucoup de travail à accomplir et c’est pourquoi le développeur principal de la branche ARM songe à proposer un contrat à la fondation Haiku Inc. pour avancer plus rapidement.
Port PPC Sam460ex

Un portage sur Sam460ex, une carte à base de PowerPC embarqué, utilisée dans les AmigaOne 500, est démarré. Pour l’instant le noyau compile, le gestionnaire de démarrage le charge et lui passe la main. La suite nécessite une modification du code gérant la MMU, car elle diffère des PowerPC "Classic", les processeurs embarqués répondant à la spécification "Book E". Les progrès seront détaillés lors de l’Alchimie X. Au passage, des corrections au support OpenFirmware sont apportées pour permettre un démarrage dans QEMU, dont le firmware OpenBIOS pose quelques problèmes.
Port M68K

Un portage sur l’architecture 68k existe mais reste peu avancé. Il s’agit surtout de tenter de supporter des machines mythiques comme l’Atari Falcon ou l’Amiga… pour le fun !
WebPositive, le navigateur basé sur WebKit

Le navigateur basé sur Webkit avance bien.

Début septembre, Adrien Destugues est une nouvelle fois embauché pour travailler cette fois-ci sur WebPositive et le portage de WebKit. Ses objectifs sont :

Documenter le "Service Kit" (le composant qui gère les différents protocoles de communication : HTTP, FTP, …)
Effectuer un travail de fond sur le port Haiku de WebKit, notamment s’assurer qu’il prend en charge le plus grand nombre possible de sites web.
Améliorations en tout genre : retravailler le moteur de recherche, …
Mettre à jour WebKit, l’évolution rapide du moteur de rendu rend difficile la synchronisation avec le port Haiku.
Mettre en place un système de compilation automatisé de WebKit ( buildbot ) afin de faciliter les mises à jour et aussi avoir un moyen aisé pour faire de la cross-compilation.

Vous pouvez consulter les dépots WebKit et Haiku sur Github sur le sujet ou consulter les infos directement sur le site d’Haiku : 1 ou 2
Gestionnaire de paquets

Fin mars, la fondation a annoncé l’embauche de deux développeurs pour une durée de deux mois afin de travailler sur le système de paquets : Olivier Tappe et Ingo Weinhold. Le système de compilation des paquets a été grandement amélioré. Le principal objectif de ces deux mois de travail était de pouvoir compiler un paquet donné ainsi que toutes ses dépendances. Ingo et Olivier avaient donné une conférence au BeGeistert 024 fin novembre 2011 a propos de l’état des paquets et de ce qu’ils prévoyaient. Le tout est disponible en vidéo sur Youtube en cinq parties.

Ce qui suit est un bref résumé du travail accompli sur la gestion des paquets pour Haiku, Olivier et Ingo ont régulièrement communiqué à la communauté l’avancement de leurs travaux. Malgré la fin de leur contrat, ils ont continué d’améliorer le système de paquet à tel point qu’Ingo a été de nouveau embauché début juin par la fondation pour une durée d’au moins trois mois.
Format des paquets et technologies utilisées

Haiku possédait déjà un système de paquets un peu rudimentaire, mais néanmoins fonctionnel. Un des objectifs était d’améliorer son fonctionnement et lui ajouter quelques fonctionnalités essentielles, comme la gestion des dépendances. Chaque paquet Haiku était décrit par un fichier BEP, une sorte de recette de cuisine qui permettait entre autres d’indiquer les dépendances, la manière de compiler et la manière d’installer un paquet. Bien que pratique, ces fichiers demandaient du temps pour être conçus et maintenus.

Pour faciliter la conception des fichiers BEP, l’idée était d’extraire un maximum d’informations des systèmes de paquets déjà existant. Plusieurs systèmes de paquet furent considérés et les EBuild de Gentoo furent retenus, en partie car ce sont de simples scripts shell. Afin de faciliter la conversion EBuild vers BEP, il a été décidé que les BEP devaient être eux aussi des scripts shell. De plus, haikuporter - le programme chargé de compiler un paquet à partir du BEP - alors écrit en Python devait dans l’idéal être réécrit avec Bash ou C/C++.

Il s’est finalement avéré qu’il n’y avait pas de difficulté majeure à continuer d’utiliser Python pour haikuporter. Seule la conversion des BEP en script shell a été effectuée. Ce changement de format a aussi occasionné un changement de nom : les fichiers BEP sont dorénavant appelés ’recettes’ (recipes en anglais) et doivent être nommés nom_du_paquet.recipe. L’utilisation des EBuild de Gentoo fut abandonné, notamment car le nombre d’applications empaquetées pour Haiku est d’environ 50.
Réorganisation du système et cross-compilation

Afin d’avoir un système le plus cohérent possible, beaucoup de programmes dits "tiers" étaient inclus dans le dépot officiel des sources. Ces programmes sont nécessaires pour une installation basique d’Haiku, ils comprennent entre autre les outils GNU (coreutils), les classiques grep et sed, mais aussi haikuporter, essentiel puisqu’il permet d’installer d’autres logiciels. Néanmoins, cette manière de faire avait quelques défauts, notamment le fait d’avoir plusieurs systèmes de compilation à maintenir. C’est pourquoi il a été décidé d’enlever tous ces programmes tiers pour en faire des paquets, qui seront pré-compilés et inclus par la suite à l’image de base.
La poule ou l’œuf ?

Maintenant que le compilateur est lui aussi un paquet, un nouveau problème se pose. Sur une nouvelle architecture, comment compiler un paquet pour la première fois, alors que l’on a besoin de lui pour le compiler ? La solution utilisée est la compilation croisée (cross-compilation) : l’idée est de construire le paquet sur une autre architecture (et en n’utilisant pas forcément Haiku)...

Lire la suite

Répondre à cet article

Priorité au Logiciel Libre! Je soutiens l'April.
SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL