URL: https://linuxfr.org/news/quelques-nouvelles-de-luneos Title: Quelques nouvelles de LuneOS Authors: Christophe olivierweb, claudex, ZeroHeure, bubarđŠ„, RyDroid, palm123 et Davy Defaud Date: 2017ćčŽ09æ26æ„T16:35:40+02:00 License: CC By-SA Tags: webos, halium, openembedded et luneos Score: 67 LuneOS est une distribution GNU/Linux pour _smartphones_ et tablettes, hĂ©ritiĂšre de feu [webOS](https://fr.wikipedia.org/wiki/HP_webOS). Une nouvelle version, _Decaf_, [vient tout juste de sortir](https://pivotce.com/2017/10/08/luneos-september-stable-release-decaf/)  ---- [Lien vers la prĂ©cĂ©dente dĂ©pĂȘche](https://linuxfr.org/news/webos-se-relance-en-luneos) [DĂ©pĂȘche sur le projet Halium](https://linuxfr.org/news/naissance-du-projet-halium) [Annonce de la version Decaf](https://pivotce.com/2017/10/08/luneos-september-stable-release-decaf/) [DĂ©pot GitHub](https://github.com/webos-ports/) [WebOS ports](http://www.webos-ports.org/) ---- Introduction =========== Le projet est portĂ© par lâĂ©quipe [webOS-Ports](http://webos-ports.org/wiki/Main_Page), dont le but est de faire revivre webOS sur les matĂ©riels contemporains. MalgrĂ© le peu de couverture mĂ©diatique autour de LuneOS, le projet est toujours bien vivant, avec une (petite) Ă©quipe motivĂ©e. Lâensemble de la distribution est libre (ou presque) et chacun peut, sâil le veut, recompiler sa propre image chez lui. Une exception dans ce beau tableau : les _blobs_ binaires utilisĂ©s pour faire tourner les pilotes Android. Nous y reviendrons plus tard. Avec Ă peu prĂšs une publication mensuelle, LuneOS a gagnĂ© en maturitĂ© depuis la [derniĂšre dĂ©pĂȘche](https://linuxfr.org/news/webos-se-relance-en-luneos) : tĂ©lĂ©phonie, matĂ©riel pris en charge, infrastructure... Voyons un peu ce que propose LuneOS dans la version toute fraĂźche de ce moisâci. ## Quelques captures dâĂ©cran (depuis un LG Nexus 5) ### Ăcran dâaccueil avec quelques applications [](http://pix.toile-libre.org/?img=1506608458.png "Ăcran dâaccueil avec quelques applications") ### Lanceur dâapplications [](http://pix.toile-libre.org/?img=1506608984.png Lanceur d'applications) ### Application de tĂ©lĂ©phone [](http://pix.toile-libre.org/?img=1507464218.png Application de tĂ©lĂ©phone) ### Recherche globale « Just Type » [](http://pix.toile-libre.org/?img=1507464758.png Just Type) SystĂšme de compilation ---------------------- LuneOS utilise [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) pour son systĂšme de compilation et la gĂ©nĂ©ration de la distribution. Câest un cadriciel trĂšs souple, orientĂ© « systĂšmes embarquĂ©s ». Il est possible de cibler diffĂ©rentes architectures et de gĂ©nĂ©rer les paquets logiciels nĂ©cessaires assez facilement. Chaque paquet est dĂ©crit par une « recette » qui indique comment compiler le logiciel, de façon similaire aux [PKGBUILD dâArch Linux](https://wiki.archlinux.org/index.php/PKGBUILD). Il faut Ă©galement citer le projet [Yocto](https://www.yoctoproject.org/), qui maintient une bonne partie des « recettes » utilisĂ©es par LuneOS pour compiler la distribution. Principales caractĂ©ristiques de LuneOS ----------- - ergonomie pensĂ©e pour le tactile ; - beaucoup dâactions se font par balayage du doigt (fermer une application, aller Ă la liste des applications, retour arriĂšre...) ; - concept de « jeu de cartes » pour dĂ©crire les applications ; - une intĂ©gration forte des Ă©lĂ©ments du systĂšme : champ de recherche central (« _Just Type_ »), fusionnement des conversations pour les diffĂ©rents comptes (« _Synergy_ ») ; - les applications utilisent de prĂ©fĂ©rence HTML 5, JavaScript et CSS. NouveautĂ©s ========== La derniĂšre version de LuneOS repose sur la version _pyro_ de Yocto. Infrastructure -------------- LuneOS utilise Qt 5.9.2 (qui est une version Ă support Ă©tendu), ainsi que des versions rĂ©centes pour les briques de base : systemd 232, glibc 2.25, PulseAudio 10, Wayland 1.13... Cela permet dâavoir les derniĂšres corrections, mais aussi de profiter de fonctionnalitĂ©s assez rĂ©centes, notamment en ce qui concerne Qt : - avec le dernier QtWayland, lâAPI a Ă©tĂ© grandement remodelĂ©e et simplifiĂ©e ; - QtQuickControls 2 facilite lâutilisation de QML sur les tĂ©lĂ©phones mobiles et tablettes, et gĂšre mieux les thĂšmes et les hautes densitĂ©s de pixels (HiDPI, Retina...) ; - LuneOS utilise massivement [QtWebEngine](https://wiki.qt.io/QtWebEngine) : les applications Ă©tant Ă©crites en HTML 5, avoir un moteur Web rĂ©cent permet de profiter des derniĂšres optimisations et corrections. QtWebEngine 5.9 utilise le mĂȘme cĆur que Chromium 56, sorti dĂ©but 2017. Halium ------ Avec cette version LuneOS utilise maintenant le projet [Halium](https://halium.org/), dans sa version 5.1, pour faciliter la rĂ©utilisation des pilotes Android sur le matĂ©riel cible. ### Dans la pratique, ça veut dire quoi ? Halium consiste en un ensemble de dĂ©pĂŽts relatifs Ă Android, lĂ©gĂšrement modifiĂ©s afin de ne compiler que la partie bas niveau : services de base et initialisation des pilotes, principalement. La compilation elleâmĂȘme est faite par webOS-Ports. Il nây a finalement quâun morceau de LuneOS qui nâest pas construit depuis les sources : les _blobs_ propriĂ©taires pour le matĂ©riel. Câest un compromis aujourdâhui nĂ©cessaire pour arriver Ă utiliser LuneOS sur des matĂ©riels courants et en exploiter tous les pĂ©riphĂ©riques (contrairement Ă [Replicant](https://linuxfr.org/tags/replicant/public)). La couche Halium est utilisĂ©e de deux façons dans LuneOS : - un sousâsystĂšme Android minimal est lancĂ© dans un conteneur LXC et sâoccupe dâinitialiser le matĂ©riel et lancer les services de base nĂ©cessaires au fonctionnement des pilotes ; - certaines bibliothĂšques Android sont rĂ©utilisĂ©es directement par les binaires LuneOS : OpenGL ES, audio, capteurs, etc. Tout cela est rendu possible grĂące Ă _libhybris_, qui fait le lien entre un binaire basĂ© sur la _glibc_ et une bibliothĂšque basĂ©e sur _bionic_. ### Quel atout Ă utiliser Halium ? Les atouts sont nombreux, et webOS-Ports a participĂ© au projet Halium trĂšs naturellement : - on se soucie moins de la partie Android, qui nâest pas notre centre dâintĂ©rĂȘt principal ; - il est plus facile de faire un nouveau portage, car cela revient surtout Ă sâassurer que le code Halium pour ce matĂ©riel existe. Ensuite, il y a quelques ajouts Ă faire cĂŽtĂ© LuneOS, mais assez lĂ©gers normalement ; - passer Ă une version dâAndroid plus rĂ©cente est aussi plus simple : il suffit en gros de changer la version de Halium utilisĂ©e ; - bien sĂ»r, et câest le but principal, utiliser Halium nous apporte un bonne prise en charge matĂ©rielle : capture photo, capteurs dâorientation et GPS, accĂ©lĂ©ration vidĂ©o et audio, etc. CĂŽtĂ© applications ----------------- GrĂące Ă lâapplication Preware 2, il est possible dâinstaller tout un ensemble dâapplications additionnelles. Les applications « _legacy_ » doivent normalement marcher sans problĂšme, pour peu que lâon possĂšde le fichier `.ipk` correspondant. LuneOS propose aussi les applications de base : - tĂ©lĂ©phone et historique ; - conversations (centralisĂ©es entre tous les comptes, grĂące Ă Synergy) ; - appareil photo (encore en cours de dĂ©veloppement) ; - application PDF, basĂ©e sur [_PDF.js_](https://mozilla.github.io/pdf.js/) ; - gestionnaire de fichiers ; - etc. Envie dâessayer ? ================= Les mobiles _Nexus 4_ et _Nexus 5_ sont officiellement pris en charge, ainsi que la tablette HP _Touchpad_. Il est Ă©galement possible de tester LuneOS avec VirtualBox Ă lâaide des images 32 bits et 64 bits pour lâĂ©mulateur. La suite ======== Il y aura toujours des choses Ă faire sur un projet tel que LuneOS ; pour le moment, voici une partie des idĂ©es pour la suite : - amĂ©liorer encore lâintĂ©gration de Halium ; - passer de Bluez 4 Ă Bluez 5 pour la gestion du Bluetooth ; - repenser lâapplication _ParamĂštres_, et probablement la réécrire en QML pour mieux lâintĂ©grer au reste du systĂšme ; - amĂ©liorer lâapplication _Photos_ ; - proposer un SDK pour les dĂ©veloppeurs souhaitant crĂ©er une application « native » (non HTML 5) ; - passer Ă un cadriciel plus moderne quâEnyo pour le dĂ©veloppement des applications HTML : pour le moment, le choix penche vers Polymer/WebComponents, mais ça reste Ă confirmer par des expĂ©rimentations. LuneOS est un projet vaste, portĂ© actuellement par un groupe assez rĂ©duit de bĂ©nĂ©voles. Sur de nombreux sujets, les contributions sont donc Ă©videmment les bienvenues, notamment au niveau des applications.