Attention je suis entièrement débutant en la matière ! Ce tutoriel est à la fois un moyen de consolider mes bases qu'une humble aide pour les utilisateurs francophones de Foresight. Toute personne découvrant des erreurs dans ce tutoriel ou désirant apporter quelques améliorations est bienvenue.
I. Un utilisateur privilégié pour cette tâche
Il est conseillé de créer un utilisateur, cobuilder par exemple, disposant des droits sudo spécialement pour cette tâche. Pour l'appeler il suffit de faire un simple
"su cobuilder"dans un terminal.
II. Création d'un projet rBuilder
Il faut ensuite créer un projet sur rBuilder. Il est possible de créer un dépôt local, et certainement sur son propre serveur, mais ce n'est pas le sujet de ce tutoriel.
Rendez-vous sur : http://www.rpath.com/rbuilder/
Et ouvrez un compte.
Ensuite vous pouvez, sur la page d'accueil, cliquer sur "creating a new project".
L'adresse de votre projet sera alors :
https://www.rpath.org/rbuilder/repos/projectname/
Si vous cliquez sur edit project, vous pourrez modifier les propriétés de votre dépôt. Ainsi vous apprendrez que le nom par défaut de la branche de votre projet est rpl:devel
III. Créer un environnement local de construction de paquets
1) Répertoires
Créer un répertoire conary :
$ mkdir conary
puis les sous-répertoires suivant :
$ mkdir -p conary conary/builds conary/cache
conary/builds : le répertoire dans lequel les paquets sont créés.
conary/cache : endroit dans lequel les archives des sources sont conservés.
Pour chaque projet vous devez créer des répertoires associés (nous verrons cela plus loin).
2) ~/.conaryrc
C'est le fichier dans lequel nous écrirons le informations appropriées pour la mise en place de l'environnement de construction de paquets. Voici le squelette principal :
contact email_address_or_url
name user_preferred_name
user *.rpath.org rBuilder_Online_username rBuilder_Online_password
[projectname]
buildLabel projectname.rpath.org@project_branch_name
Remplacez :
email_address_or_url : par votre adresse mail
user_preferred_name : par le nom et/ou prénom de votre choix
rBuilder_Online_username : le nom d'utilisateur de votre compte rBuilder
rBuilder_Online_password : et le mot de passe de ce compte
projectname : le nom du projet créé sur votre compte rBuilder
rBuilder_Online_password : et son mot passe
3) Activation des dépôts
Vous pouvez créer plusieurs dépôts. Pour cela il suffit de créer dans votre fichier conaryrc, une nouvelle section de type :
[projectname]
buildLabel projectname.rpath.org@project_branch_name
Puis il vous activer le(s) répertoire(s) lié(s) à votre ou vos projets :
$ cd conary
$ mkdir projectname
$ cd projectname
$ cvc context projectname
Pensez à ajouter l'adresse de votre dépôt dans votre /etc/conaryrc ou votre /etc/conary/config.d/foresight (vous pouvez même créer un fichier qui lui soit spécifique dans le dossier config.d) à la suite de la ligne installLabelPath
Les personnes souhaitant créer un paquet sans créer de groupe de paquets peuvent sauter au chapitre V. Créer un groupe de paquet facilite l'installation et la maintenance d'un ensemble de paquets. Ainsi un groupe "group-emacs" peut contenir emacs ainsi que l'ensemble des programmes LISP pour emacs que vous utilisez quotidiennement. Un simple conary update group-emacs vous permet d'installer cet ensemble.
IV. Créer le groupe et la recette du groupe
Il faut créer le groupe avec cvc newpkg dans le répertoire du projet et remplacer appliancename par le nom représentant votre application.
Imaginons que nous voulions créer un groupe emacs :
$ cvc newpkg group-emacs
Cela devrait créer un sous répertoire group-emacs contenant un fichier CONARY
$ cd group-emacs
$ ls
Il faut ensuite créer un fichier group-emacs.recipe contenant les informations et options liées à ce projet. Voici un squelette standard que vous pouvez compléter en allant sur : http://wiki.rpath.com/wiki/Conary:Group_Recipe
$ touch group-emacs.recipe
class Dist(GroupRecipe): #Indique que nous créons un groupe
name = 'group-emacs' #Nom du group
version = '0.1' #Version de la recette du groupe
#autoResolve = True #Indique au système de construction de paquet que la résolutions des dépendances est automatiquement activée
def setup(r):
r.setLabelPath('projectname.rpath.org@rpl:devel',
'foresighvt.rpath.org@fl:1',
'foresight.rpath.org@fl:1-contrib',
'conary.rpath.com@rpl:1',
'contrib.rpath.org@rpl:1',) # ajouter les dépôts
r.add('myapplication') #Inclure une application que nous avons empaquetés (voir plus loin)
r.add('anotherpackage',
'anotherproject.rpath.org@rpl:devel') #Ajouter un paquet dans chemin spécifique
V. Création de paquets pour le groupe
Installons les paquets nécessaires à la création de paquets :
$ sudo conary update group-devel rmake
L'installation peut être longue.
1) Créer un nouveau paquet
Restez dans le répertoire group-emacs et faite un :
$ cvc newpkg emacs
$ cd emacs
Créez un fichier emacs.recipe et écrivez :
class Goom(AutoPackageRecipe):
name = 'emacs'
version = '22.1'
buildRequires = []
def unpack(r):
r.addArchive('http://ftp.gnu.org/gnu/emacs/emacs-22.1.tar.gz')
r.Run('./configure')
r.Make()
r.MakeInstall()
r.PackageSpec('ctags', '/usr/bin/ctags')
r.PackageSpec('ctags', '/usr/bin/etags')
r.PackageSpec('ctags', '/usr/share/man/man1/ctags.1.gz')
Vous reconnaîtrez les commandes standards d'installation de sources.
r.Run permet de lancer une commande de votre choix.
r.Make l'équivalent de make
r.MakeInstall, l'équivalent de make install (il n'installe cependant rien sur votre système !)
r.PackageSpec permet d'indiquer que tel fichier appartient à tel autre paquet. Foresight installe un paquet ctags qui entre en conflit avec une installation par les sources de Emacs. Il suffit d'indiquer les fichiers qui entre en conflit et les lier au paquet ctags afin que le paquet emacs s'en remettre au paquet ctags en ce qui concerne ces fichiers.
Il existe des modèles selon le type de projet ici : http://wiki.rpath.com/wiki/Conary:Recipe_Templates
2) Cuisiner la recette et tester
Cuisiner :
$ cvc cook emacs.recipe
Et goûter ;)
$ sudo conary update emacs-22.1.ccs
Si tout fonctionne vous pouvez le désinstaller et continuer (commande standard)
3) "Comiter" et cuisiner dans le dépôt
$ cvc add emacs.recipe
$ cvc ci
Après le cvc ci une instance de vi est ouverte. Il s'agit d'entrer la description de votre paquet. Ici un "Emacs is the best Text Editor" suffit ;)
La commande cvc add n'est demandé qu'une seule fois après chaque cvc newpkg. Une fois qu'un paquet est créé et "comité" cvc ci suffit.
Les sources sont envoyés sur votre dépôt.
Cuisinons (faire des sources un binaire) le paquet dans le dépôt afin qu'il soit accessible pour l'installation à chaque personne accédant à ce dépôt :
$ cvc cook emacs
Vous pouvez dès à présent installer votre via conary (dans mon cas :
sudo conary update emacs=camilleb.rpath.org@rpl:devel). Mais ne le faites pas, nous allons d'abord lier ce paquet au groupe group-emacs.
VI. Cuisinons la recette du groupe, comittons-la et cuisinons le groupe
Pensez bien à ajouter vos applications dans le groupe. Dans le cas du group emacs :
r.add('emacs')Cuisinons la recette :
$ cvc cook group-emacs.recipe
Ajoutons la recette au dépôt :
$ cvc add group-emacs.recipe
$ cvc ci
Le cvc add ne sert qu'une seule fois après la création de la recette. Par la suite un simple cvc ci suffit.
Et enfin cuisinons le groupe sur le dépôt :
$ cvc cook group-emacs
Et voilà !
Vous pouvez le groupe avec un simple : sudo conary update group-emacs
0 commentaires:
Enregistrer un commentaire