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