# Documentation de la bibliothèque MLV-2.0.2

- Presentation
- Téléchargement
- Installation
- Compilation
- Exemples
- API
- Liste des fonctions
- bogues
- FAQ
- contacts

Créer des paquets contenant la bibliothèque MLV pour les distributions Linux

# Sommaire

- Créer des paquets debian
- Créer des paquets fedora

# Créer des paquets debian

Pour pouvoir réaliser les manipulations suivantes, vous devez avoir une machine installée sous debian ou ubuntu. Vous devez aussi avoir installé les paquets suivants:

- doxygen,
- build-essential,
- libsdl-gfx1.2-dev,
- libsdl1.2-dev,
- libsdl-mixer1.2-dev,
- libsdl-ttf2.0-dev,
- libsdl-image1.2-dev,
- libglib2.0-dev,
- libxml2-dev,
- debhelper,
- autotools-dev,
- fakeroot.

Pour cela tapez la commande suivante :

    sudo apt-get install doxygen build-essential libsdl-gfx1.2-dev libsdl1.2-dev
    sudo apt-get install libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev
    sudo apt-get install libglib2.0-dev libxml2-dev debhelper autotools-dev fakeroot

Pour créer des paquets debian, vous devez commmencer par télécharger la bibliothèque MLV à l'addresse suivante : mlv-2.0.2.tar.gz.

Décompressez la bibliothèque en tapant la commande:

    tar -xzf mlv-2.0.2.tar.gz

Il est très important de réaliser les opérations qui vont suivre à partir du dossier mlv-2.0.2 issu de la décompression du fichier mlv-2.0.2.tar.gz. Si vous le faite à partir du dossier du dépot git de MLV, cela ne fonctionnera pas.

Pour créer les paquets debian, vous allez utiliser un script prévu à cet effet. Pour utiliser ce script, il faut commencer par le générer en tapant les commandes suivantes:

    cd mlv-2.0.2
    ./configure

Le script a été généré dans le répertoire packaging/debian/ et il s'appelle script_pkg. Maintenant déplacez-vous dans le répertoire du script en tapant la commande:

    cd packaging/debian

Modifiez le fichier `debian/control` et remplissez correctement le champs :

    Maintainer: Unknow Maintener <unknown.maintenener@univ-mlv.fr>;

Tous les fichiers et scripts sont prêt. Avant de créer les paquets, il faut créer une clé pour signer le paquet. Pour cela, tapez la commande suivante:

    gpg --gen-key

Répondez aux questions. Si vous ne savez pas quoi répondre, choisissez les réponses par default.

Vous pouvez aussi importer une clé privée que vous avez déjà créé préalablement. Il suffit de taper, à la place de la commande, la ligne suivante :

    gpg --import FICHIER_CLE_PRIVEE

Listez les clés que vous possédez en tapant la commande:

    gpg --list-keys

Vous devez obtenir un fichier qui ressemnle à ceci:

    pub   4096R/A4812E81 2012-07-06 [expire: 2014-07-06]
    uid                  Adrien Boussicault (Clé pour les paquets d'installation de MLV) <boussica@labri.fr>
    sub   4096R/CA53E162 2012-07-06 [expire: 2014-07-06]

Vous pouvez enfin créer le paquet en tapant:

    ./script_pkg -k XXX

où XXX est l'id de votre clé. Dans mon exemple, XXX=A4812E81.

Si tout c'est bien passé, deux paquets ont été créés :

- libmlv0_2.0.2-1_X.deb
- libmlv0-dev_2.0.2-1_X.deb dans le répertoire courant, où X vaut i386 ou amd64 selon l'architecture (32 ou 64 bits) de votre ordinateur.

# Créer des paquets fedora

Dans cette partie, nous supposerons que vous possédez d'un ordinateur sur lequel est correctement installée et mise à jour une fedora.

Commencez par installer les différents outils permettant de créer des paquets RPM en installant les paquets suivants:

    su
    yum install rpmdevtools yum-utils rpm-sign
    exit

Nous allons maintenant créer l'environnement de travail. Tapez la commande suivante pour créer les dossiers où seront déposés les différents paquets créés:

    cd ~/
    rpmdev-setuptree

Vérifiez que cette commande a créé les repertoires:

    rpmbuild/
    ├── BUILD
    ├── RPMS
    ├── SOURCES
    ├── SPECS
    └── SRPMS

et le fichier `.rpmmacros`.

Éditez le fichier `.rpmmacros` et ajoutez les champs suivants en prenant soin de les adapter à votre utilisation:

    %vendor                 Votre Nom
    %packager               Plus d'information
    %dist                   .fc22
    %fedora                 22

Les champs `dist` et `fedora` décrivent la distribution et son numero de version.

Nous allons maintenant préparer les outils pour pouvoir signer les paquets créés. Commencez par generer une clé gpg:

    gpg --gen-key

Répondez aux questions. Si vous ne savez pas quoi répondre, choisissez les réponses par default.

Vous pouvez aussi importer une clé privée que vous avez déjà créée préalablement. Il suffit de taper, à la place de la précédente commande, la ligne suivante :

    gpg --import FICHIER_CLE_PRIVEE

Vérifier que la clé est dans votre liste de clés en tapant :

    gpg --list-key

Vous devriez obtenir l'affichage suivant :

    /home/boussica/.gnupg/pubring.gpg
    ---------------------------------
    pub   4096R/E594D293 2014-02-25 [expire : 2014-02-28]
    uid                  Adrien Boussicault (mlv-2.0.2 key) <boussica@labri.fr>
    sub   4096R/4B3F1834 2014-02-25 [expire : 2014-02-28]

L'identifiant de la clé est ici `E594D293`

Modifiez le fichier `.rpmmacros` pour indiquer l'emplacement des clés crées et le nom qui a été utilisé lors de la création de la clé :

    %_signature             gpg
    %_gpg_name              Votre Nom
    %_gpg_path              %(echo $HOME)/.gnupg

Exporter la clé publique afin de la comuniquer aux utilisateurs

    gpg2 --export --armor IDENTIFIANT_CLE > RPM-GPG-KEY-Votre_nom

où identifiant clé est l'identifiant précédent.

Commencez par installer tous les programmes et bibliothèques nécessaires pour compiler, installer et créer les paquets rpm de la bibliothèque MLV. Pour cela, tapez la commande suivante:

    su
    yum install SDL-devel SDL_mixer-devel SDL_image-devel libxml2-devel SDL_ttf-devel SDL_gfx-devel glib2-devel doxygen gcc make pkgconfig
    exit

Pour créer les paquets rpm, vous devez commencer par télécharger la bibliothèque MLV à l'addresse suivante : mlv-2.0.2.tar.gz.

Décompressez la bibliothèque et copiez les fichiers suivants:

    tar -xzf mlv-2.0.2.tar.gz

Configurez la bibliothèque pour générer les scripts permettant de créer les paquets pour fedora.

    cd mlv-2.0.2
    ./configure
    cd ..

Installer la bibliothèque et les script dans le dossier qui construira le paquet pour fedora.

    cp mlv-2.0.2.tar.gz rpmbuild/SOURCES
    cp mlv-2.0.2/packaging/fedora/rpmbuild/SPECS/mlv.spec rpmbuild/SPECS

Créez le paquet rpm en tapant les lignes de commandes suivantes:

    cd rpmbuild/SPECS
    rpmbuild -bp mlv.spec
    rpmbuild -bc --short-circuit mlv.spec
    rpmbuild -bi --short-circuit mlv.spec
    rpmbuild -ba mlv.spec

Si vous utilisez une fedora 32 bits, le processus a créé quatres paquets rpm :

- ~/rpmbuild/RPMS/i686/mlv-2.0.2-0.fc22.i686.rpm
- ~/rpmbuild/RPMS/i686/mlv-devel-2.0.2-0.fc22.i686.rpm
- ~/rpmbuild/RPMS/i686/mlv-static-2.0.2-0.fc22.i686.rpm
- ~/rpmbuild/SRPMS/mlv-2.0.2-0.fc22.src.rpm

Si vous utilisez une fedora 64 bits, le processus a créé quatres paquets rpm :

- ~/rpmbuild/RPMS/x86_64/mlv-2.0.2-0.fc22.x86_64.rpm
- ~/rpmbuild/RPMS/x86_64/mlv-devel-2.0.2-0.fc22.x86_64.rpm
- ~/rpmbuild/RPMS/x86_64/mlv-static-2.0.2-0.fc22.x86_64.rpm
- ~/rpmbuild/SRPMS/mlv-2.0.2-0.fc22.src.rpm

Il ne vous reste plus qu'à signer les paquets pour garantir leurs intégrités. Pour cela, tapez les commandes suivantes (pour une fedora 64 bits):

    cd ~
    rpmsign --addsign rpmbuild/RPMS/x86_64/mlv-2.0.2-0.fc22.x86_64.rpm
    rpmsign --addsign rpmbuild/RPMS/x86_64/mlv-devel-2.0.2-0.fc22.x86_64.rpm
    rpmsign --addsign rpmbuild/RPMS/x86_64/mlv-static-2.0.2-0.fc22.x86_64.rpm
    rpmsign --addsign rpmbuild/SRPMS/mlv-2.0.2-0.fc22.src.rpm

La clé utilisé pour la signature est celle qui a pour nom, le nom du champ `_gpg_name` dans le fichier `.rpmmacros`.

Les paquets RPM pour fedora sont enfin prêt. Vous pouvez maintenant les tester en suivant la procédure d'installation présente à la page : Fedora .