News | About | Get Frugalware | Packages | Documentation | Discussion Forums | Bug Tracker | Wiki | Community | Development

Création de paquets

From FrugalWiki

Jump to: navigation, search

Contents

La création de paquets (ou empaquetage) se fait grâce à des scripts que l'on appelle des FrugalBuild.
Grâce à ces scripts, l'application nommé makepkg, va pouvoir télécharger les sources du logiciel que l'on veut empaqueter pour les compiler et simuler une installation des binaires obtenus, tout ça dans un environnement matrice que l'on appelle le chroot.
Si tout se passe bien, makepkg créera l'archive .fpm qui contiendra les fichiers binaires obtenus après la compilation pour que le logiciel soit installé grâce à pacman-g2.

Cependant, pour créer un paquet, il faut des pré-requis.

Pré-requis

Obtenir sa copie du FST

Installation des logiciels requis

Tout d'abord vous aurez au moins besoin de git et des outils inclus dans pacman-tools

Root terminal 48px.png
# pacman-g2 -S pacman-tools git


Configuation de Sudo et Makepkg

Il est préférable (et plus pratique) d'utiliser makepkg avec sudo.
Editez le fichier /etc/sudoers.

Vous pouvez créer un groupe d'utilisateurs nommé “devels” et y mettre votre compte utilistaeur dans ce groupe, il suffira alors d'ajouter au fichier sudoers:

 %devels ALL=NOPASSWD:/usr/bin/makepkg

Vous pouvez également donner les droits d'utiliser makepkg avec sudo à votre utilisateur, dans ce cas ce sera

 nom_d'utilisateur ALL=NOPASSWD:/usr/bin/makepkg

Attention plus de mot de passe vous sera demandé pour éxécuter la commande makepkg en tant qu'utilisateur.

Idéalement, il est bien d'avoir sa propre copie du FST (Frugalware Source Tree), c'est-à-dire, les sources du dépôt current. Ca vous permettra de voir les FrugalBuild qu'il y a et cela vous permettra de vous en inspirer. Mais il y a deux façons pour avoir sa copie :

Copie du FST dans le dossier par défaut

Vous pouvez l'obtenir en tant que root en tapant :

Root terminal 48px.png
# repoman upd

Ceci va créer la copie du FST dans le dossier par défaut:

 /var/fst

Le dossier par défaut est défini dans le fichier

 /etc/repoman

Vous pouvez changer le dossier par défaut, mais préférez alors la seconde solution.

Copie du FST dans un dossier personnel

Vous pouvez l'obtenir en tant qu'utilisateur en créant le fichier .repoman.conf dans votre répertoire /home pour lui ajouter cette ligne :

 fst_root=~/git

Comme ça, les sources iront directement dans le répertoire ~/git, ou un répertoire que vous aurez choisi en tapant :

User terminal 48px.png
$ repoman upd

A noter que vous pouvez également directement obtenir une copie du dépôt git avec:

User terminal 48px.png
$ git clone http://frugalware.org/git/pub/frugalware/frugalware-current current


Entraînons nous avec un exemple simple

Pourquoi utiliser un environnement chroot pour compiler ses paquets ?
Tout simplement parce que le chroot permet de trouver les véritables dépendances pour votre paquet sans pour autant “sacrifier” votre système.
Le chroot, c'est une sorte de matrice qui joue le rôle de votre système dans votre système. Pour créer le chroot, il vous suffira juste d'installer les paquets nécessaires en tapant la commande suivante. Makepkg s'occupera de télécharger et d'installer ce qu'il faudra lorsque vous ferez votre premier FrugalBuild.

Par défaut, le chroot se situe dans le répertoire /var/chroot. Vous pouvez changer son emplacement en modifiant le fichier /etc/makepkg.conf

Essayez cette exemple simple et détaillé puis placez-vous dans le répertoire où se trouve le FrugalBuild. Et lancez la commande:

User terminal 48px.png
$ sudo makepkg -uc

Attention la toute première fois, cela risque d'être un peu long car tout les paquets devel-core vont etre téléchargés afin de créer l'environnement chroot.

Ensuite cela va créer le paquet suivant votre environnement chroot (si toutefois le FrugalBuild ne contient pas d'erreurs).

Si vous voulez compiler le paquet sur votre système directement, il faut utiliser cette commande:

User terminal 48px.png
$ sudo makepkg -H

Ce n'est pas conseillé car vous risquez de passer à coté de certaines dépendances.

Il est recommandé de consulter toutes les commandes possibles avec Makepkg.

Allez plus loin

FrugalBuild

Un exemple vierge est disponible.

Si vous avez des difficultés avec votre FrugalBuild, n'hésitez pas à demander de l'aide sur ircou sur le forum.

Pour plus d'informations sur les FrugalBuild, n'oubliez pas le manuel en tapant :

User terminal 48px.png
$ man FrugalBuild


Composition d'un FrugalBuild

Avant d'aller plus loin, il vous faut déjà connaitre l'outil de base de la création de paquet. C'est-à-dire, le FrugalBuild. C'est grâce à lui que vous donnerez les “instructions” à makepkg pour qu'il puisse accomplir sa tâche.

Voici un FrugalBuild vierge :


Les explications

Les fonctions

Cas particuliers

Prêt à contribuer ?

Ne gardez pas vos paquets fpm que pour vous, vous pouvez les partager en les proposant aux développeurs.

Il suffit pour çà de vous inscrire sur la mailing list anglophone frugalware-devel:

Même si l'anglais vous rebutte, n'ayez crainte. Une fois souscris à la liste envoyez votre mail à

  • frugalware-devel AT frugalware POINT org

Avec votre FrugalBuild (et patches si besoin) attaché au mail en demande une "review".

L'équipe de développement se fera un plaisir de vous répondre et vous aider si votre FrugalBuild comporte des erreurs.

Par la suite, il est préférable de cloner le dépôt git pour des raisons pratiques.

Une fois le FrugalBuild sans fautes, on vous demandera de faire un patch git.

Bon packaging !

Personal tools
Namespaces
Variants
Actions