URL: https://linuxfr.org/news/kconfig-frontends-un-empaquetage-de-kconfig Title: kconfig-frontends: un empaquetage de kconfig Authors: ymorin patrick_g et baud123 Date: 2012年03月20日T07:37:17+01:00 Tags: linux, kernel et noyau_linux Score: 37 Voici un projet qui vient de voir sa toute première version : [kconfig-frontends](http://ymorin.is-a-geek.org/projects/kconfig-frontends) est un empaquetage propre du langage ```kconfig```, utilisé par le noyau Linux. ```kconfig-frontends``` est maintenant disponible en version [3.3.0-0](http://ymorin.is-a-geek.org/download/kconfig-frontends/kconfig-frontends-3.3.0-0.tar.xz) ! Plus de détails dans la suite de la dépêche. NdM : merci à ymorin pour son journal. ---- [Journal à l'origine de la dépêche](http://linuxfr.org/users/ymorin/journaux/kconfig-frontends-un-empaquetage-de-kconfig) ---- ```kconfig-frontends``` est un empaquetage propre du langage ```kconfig```, utilisé par le noyau Linux. Il propose les 5 frontaux actuels, et une bibliothèque pour le _parser_ : * ```conf```, le frontal en-ligne (pour ```make config```, ```make oldconfig```) * ```mconf```, le frontal classique basé sur ncurses (```make menuconfig```) * ```nconf```, le nouveau frontal basé sur ncurses (```make nconfig```) * ```gconf```, le frontal basé sur GTK+ (```make gconfig```) * ```qconf```, le frontal basé sur Qt (```make xconfig```) * ```libkconfigparser```, la bibliothèque (dynamique ou statique) contenant le _parser_ ```kconfig``` est un langage de configuration, issu du noyau Linux. La syntaxe et la grammaire sont très simples : * nombre limité de types : ```bool```, ```tristate```, ```string```, ```int``` (et ```hex```, un ```int``` exprimé en hexadécimal) * gestion des listes à sélection unique (```choice```) * gestion des dépendances avant (```select```) et arrière (```depends on```) * localisation [L10n](https://fr.wikipedia.org/wiki/L10n) (bien que très peu utilisée, il est possible de localiser les entrées de configuration aussi bien que les messages) Par exemple, ce bout de code de configuration : ```text config MON_OPTION bool prompt "Mon option à moi" help Dites oui! ``` ```text config Une_Autre_option string prompt "Votre nom" depends on MON_OPTION help Entrez votre nom. ``` donnera ce fichier de sortie une fois la configuration établie (si on a choisi de dire 'oui' à la première question) : ```text MON_OPTION=y Une_Autre_option="Yann E. MORIN" ``` Ce fichier peut alors être inclus dans un Makefile, ou dans un script shell. On peut le _parser_ pour générer un fichier d'en-tête (le noyau le fait, pas ```kconfig-frontends```). De nombreux projets utilisent aujourd'hui ```kconfig``` comme langage de configuration, par exemple : [busybox](http://busybox.net/) [buildroot](http://buildroot.org/), [uClibc](http://uclibc.org/), [crosstool-NG](http://crosstool-ng.org/), etc... Tous ces projets ont un jour dupliqué le code de ```kconfig``` par simple copie, et l'ont adapté à leur propre système de compilation. Certains projets se synchronisent avec le code source du noyau Linux, parfois de manière aléatoire, parfois jamais. D'autre divergent sans remonter leurs modifications... Le paquet ```kconfig-frontends``` permet d'intégrer facilement ```kconfig``` dans des projets tiers, qui l'utilisent comme langage de configuration. Les évolutions de ```kconfig``` continueront à se faire dans les sources du noyau Linux, et ```kconfig-frontends``` sera mis à jour à chaque version du noyau. En fournissant un paquet prêt à l'emploi, il est à espérer que les différents projets se synchroniseront plus facilement et plus régulièrement, et feront partager leurs évolutions vers le _upstream_ du noyau. Maintenant, les pointeurs ! * la page du projet [kconfig-frontends](http://ymorin.is-a-geek.org/projects/kconfig-frontends) * le [dépôt des sources](http://ymorin.is-a-geek.org/hg/kconfig-frontends) * les [tarballs](http://ymorin.is-a-geek.org/download/kconfig-frontends) Le plan d'actions pour le futur : * une version de ```kconfig-frontends``` pour chaque version majeures (_dot-0 release_) du noyau Linux (pour la première fois, c'est pour le noyau 3.3) * une version de ```kconfig-frontends``` si une version mineure (_dot-release_) corrige un bug du _parser_ kconfig ou d'un frontal * une version pour corriger les bugs dans l'empaquetage * trouver une vrai maison pour le projet * migrer le dépôt vers git (à court terme) * faire de la doc ! :-) Voilà, j'ai fait le tour !

AltStyle によって変換されたページ (->オリジナル) /