bravo gontran ;-)

je sens que je vais faire pleins de nbuilds à mes heures perdues ;)

Bonjour à tous :-)

Comme annoncé au début du mois, j'ai essayé de faire avancer Ncooker durant mes vacances en emmenant dans mes bagages mon ordi portable. Comme certains semblent très impatients de pouvoir faire des paquets NBAs, je me suis fixé comme objectif de fournir les commandes nécessaires pour les créer à la rentrée (comprendre : septembre). C'est chose faite, et Ncooker dispose maintenant des nouvelles commandes Config, Wizard, Build, Install et Remove :-)

Pour avancer rapidement, j'ai implémenté des choix techniques qui n'ont pas été discutés sur cette ML. Cela ne signifie EN AUCUN CAS que ces choix sont définitifs, bien au contraire ! Je vais en parler prochainement pour que chacun puisse donner son avis. Cela concerne principalement la structure XML du fichier "infos" (déjà abordé sur la ML, mais à valider), l'arborescence des répertoires utilisés par les différentes commandes (plus particulièrement ceux utilisés pour la compilation des NBAs), et le stockage des infos dans la base de données Ncooker. Fraazz a déjà fait un superbe travail de documentation de Ncooker sur le wiki (un grand merci à lui ! :-) ). Je vais le compléter/mettre à jour pour refléter l'état actuel de Ncooker. Ainsi, tout le monde pourra s'y référer pour les discussions.

Voici maintenant les explications pour utiliser tout ça, mais avant tout, je tiens à dire que je ne suis absolument pas responsable des dégâts que Ncooker peut causer à votre système/ordinateur ! :-) Il s'agit d'un programme en cours de développement et qui manipule les fichiers de votre système, risquant de le rendre inutilisable. Vous êtes _seul responsable_ dans le choix de l'exécuter sur votre système !

Il est fortement recommandé de lire les explications jusqu'à la fin avant de lancer la moindre commande !

Comment installer la dernière version de développement de Ncooker ?

=> récupérer la dernière version sur SVN en faisant :
$ svn co svn://svn.gna.org/svn/nasgaia/trunk/ncooker

Cela va installer la dernière version de développement de Ncooker dans un sous-répertoire du répertoire courant nommé "ncooker". Placez-vous dans ce sous-répertoire :
$ cd ncooker

=> Consultez le fichier INSTALL, et faites (en root) :
$ make clean && make install

puis (en root toujours) :
$ Ncooker config --initdb

pour initialiser la base de données Ncooker.

À partir de là, vous pouvez lancer « Ncooker --help » pour afficher l'aide de Ncooker.

Comment créer un paquet NBUILD/NBA ?

=> Le plus simple est de générer un répertoire de travail pour faire un paquet NBUILD à partir des modèles de fichier "infos" et "build" fournis avec Ncooker :

$ Ncooker wizard --template foobar

crée un sous-répertoire nommé « foobar » dans le répertoire courant, contenant des modèles de fichier "infos" et "build". Ces deux fichiers sont totalement commentés. Complétez/modifiez les avec les infos nécessaires pour compiler le projet que vous voulez. Si vous ne voulez pas des commentaires, vous pouvez ajouter l'option « --no-comment » à la ligne de commande ci-dessus. Le fichier build est optionnel. S'il n'y en pas dans le Nbuild, Ncooker utilisera un comportement par défaut pour compiler le projet. Pour le moment, seul un comportement par défaut pour la chaîne de compilation GNU est disponible.

=> Créez le paquet Nbuild en faisant :

$ Ncooker pack foobar

Vous obtenez alors un paquet Nbuild dans le répertoire courant (ne tenez pas compte des messages d'erreur affichés par Check, voir plus bas).

=> Pour obtenir un paquet NBA, faites :

$ Ncooker build foobar-1.0-nga1.nbuild

Ne tenez pas compte des messages d'erreur affichés par Check, voir plus bas.
Plusieurs options permettent de contrôler finement les étapes de construction à exécuter. N'hésitez pas à lancer « Ncooker build --help » pour en apprendre davantage. Par défaut, la sortie des commandes exécutées à chaque étape est masquée. Utilisez l'option « --verbose » pour l'afficher (Voir aussi le fichier Ncooker.conf). Si tout se passe bien, vous devez obtenir un paquet NBA foobar-1.0-nga1-<arch>.nba

=> Le paquet NBA s'installe en faisant (en root):

$ Ncooker install foobar-1.0-nga1-i686.nba

=> Pour désinstaller :

$ Ncooker remove foobar

Il y a plusieurs manières d'indiquer le paquet à désinstaller. Regardez « Ncooker remove --help » pour plus d'infos.


Voilà, pour l'essentiel :-) . Une astuce : il est maintenant possible de ne taper que les premières lettre d'une commande pour la lancer. Par exemple :

* Ncooker w --template foobar

lance la commande « wizard ». Si plusieurs commandes correspondent aux lettres saisies, la première commande trouvée dans l'ordre alphabétique est lancée. Il est recommandée de taper au minimum deux ou trois lettres.


Si ça ne marche pas :

- essayez la même opération avec l'utilisateur root (à vos risques et périls ! :-) ). Je n'ai pas encore implémenté le test du user qui lance Ncooker. - utilisez le gestionnaire de bogues pour rapporter les dysfonctionnements (https://gna.org/bugs/?group=nasgaia) + éventuellement la ML. Mais privilégiez le gestionnaire de bogues qui permet de suivre leur évolution.

Les bogues connus :

- La command « check » ne fonctionne pas du tout ! :-) mais elle n'empêche pas les commandes qui y font appel de fonctionner correctement. J'ai préféré avancer sur les autres commandes avant celle-ci. Vous pouvez donc avoir des messages d'erreur concernant la validité des Nbuilds, n'en tenez pas compte. Il faut que je travaille encore dessus pour valider correctement le fichier infos. - Certains messages s'affichent mal (mauvaise indentation). Cela n'est perturbe en rien le fonctionnement de Ncooker, et sera résolu lorsque la nouvelle librairie de gestion des messages sera développée. - Certaines options courtes ne fonctionnent pas car elles sont partagées par plusieurs commandes/modules. Utilisez de préférence les options longues.

Fonctionnalités non encore implémentées :

- la fonction do_help() des scripts build n'est pas utilisée.
- Le comportement par défaut de Ncooker pour la chaine de compilation GNU n'applique pas les patches. - il n'y a pas de gestion des fichiers « preserve », « pre_inst » et « post_inst » pour les NBAs.


Voilà, n'hésitez pas à me faire part de toutes vos remarques, critiques, souhaits, améliorations ... Je remercie tous ceux dont j'ai plus qu'épuisé la patience d'avoir attendu jusque-là :-) Croyez-bien que j'ai fait aussi vite que possible en fonction de ma disponibilité et de mes contraintes personnelles. Plusieurs d'entre vous voulaient apporter des modifications/fonctionnalités à Ncooker : Guiguilinux veut améliorer la gestion des modules et rendre le code conforme aux coding rules, Geekitus a parlé de la gestion des fichiers de configuration lors de l'install d'un NBA, Marc[i1] voulait travailler sur une lib pour lire des fichiers de config texte, Chicha sur la nouvelle lib de gestion des messages ... Allez-y !! Ncooker est tout à vous ! ;-)

++
Gontran

_______________________________________________
Nasgaia-dev mailing list
[email protected]
https://mail.gna.org/listinfo/nasgaia-dev



Répondre à