Emballage RPM. Partie 3: emballage LÖVE

Nous réaliserons le premier pratique de pack avec RPM, et il emballera le moteur du jeu auquel nous voulons jouer. Sans cela, le jeu ne fonctionnerait pas.

Tout ce dont vous avez besoin est LÖVE

L'AMOUR est un moteur de jeux 2D écrit en Luaet Pas Tetris 2 c'est un jeu fait pour ledit moteur. En raison de dépendances basées sur libmpg123 Ils ne sont pas dans les référentiels officiels, c'est donc idéal pour le tutoriel.

Les fichiers SPEC disponibles dans openSUSE ils ont servi d'inspiration.

Télécharger le code source

Vous devrez télécharger les sources et les mettre dans le dossier SOURCES.

cd ~ / rpmbuild / SOURCES
wget https://bitbucket.org/rude/love/downloads/love-0.7.2-linux-src.tar.gz

Créer un modèle de spécification vierge

Cette commande créera amour.spec. Dans RPM, le nom des fichiers est assez important, car sa nomenclature est normalisée pour indiquer beaucoup de choses, telles que votre architecture, version, version, distribution, etc.

cd ~ / rpmbuild / SPECS
rpmdev-newspec amour

Nous allons ouvrir le fichier nouvellement créé ~ / rpmbuild / SPECS / love.spec. Vous verrez qu'il s'agit d'un modèle vierge. La première partie, je pense, est assez explicite. Nous allons le remplir avec les informations trouvées sur sa page officielle.

Remplissez le modèle et créez notre premier SPEC

Voici à quoi ressemble le fichier complet avec de nombreux commentaires qui expliquent chaque section:

# Nom du package.
# Selon la norme, nous supprimons le tréma du "o".
Nom: amour

# Version selon l'auteur original du package (en amont)
Version 0.7.2

# Version de l'emballage. Chaque fois que nous modifions le package, nous en ajoutons un à
# Ce nombre. De cette façon, yum sait le mettre à jour.
Libération: 1% {? Dist}

# Brève description du package
Résumé: LÖVE est un moteur de jeu 2D gratuit pour créer facilement des jeux dans Lua


# Licence (juste le nom)
Licence: ZLIB

# Site Web du programme
URL: http://love2d.org/

# URL exacte à partir de laquelle les sources originales sont téléchargées, généralement
# dans une archive .tar.gz, .zip ou quelque chose de similaire.
#
# Comme vous pouvez le voir, nous utilisons des macros de sorte que si nous mettons à jour le package, nous n'avons pas à
# modifier cette ligne. Les macros "nom" et "version" proviennent de quoi
# nous avons indiqué ci-dessus.
Source0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Dépendances requises pour construire le package.
# Nous le savons parce qu'il le met sur son site Web.
BuildRequires: flac-devel
BuildRequires: freetype-devel
BuildRequires: glibc-devel
BuildRequires: libmpg123-devel
BuildRequires: libmodplug-devel
BuildRequires: physfs-devel
BuildRequires: mesa-libGL-devel
BuildRequires: openal-soft-devel
BuildRequires: DevIL-devel
BuildRequires: libvorbis-devel
BuildRequires: SDL-devel
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel


##########
# Description longue du paquet
% la description
LÖVE est un moteur de jeu 2D incontestablement génial, qui permet un jeu rapide
développement et prototypage à Lua.

Ce projet est en constante évolution et les changements vont et viennent, parfois initiés
par nous et parfois par les recommandations des autres. Si vous avez une idée de comment
pour améliorer le moteur de jeu, il est vivement souhaitable que vous nous contactiez et
Dites-nous ce que vous en pensez.


##########
# Dans cette section, nous préparerons les sources pour compiler et appliquer le
# correctifs si vous en avez
% préparation

# Cette macro est une fonction qui décompresse les sources originales.
# Nous indiquons 2 paramètres:
# -q: mode silencieux. N'envoyez pas de messages pour chaque fichier
# décompressé.
# -n% name-HEAD: Dans ce cas, lors de la décompression, un répertoire appelé
#% nom-HEAD. Si nous ne l'indiquions pas, le programme chercherait
# one appelé% name-% version et ne pas le trouver donnerait une erreur.
% setup -q -n% nom-HEAD

# Comme vous le savez, les fichiers texte créés sous Windows se terminent par rn,
# tandis que dans * nix ils se terminent seulement par n. Donc pour le mieux
# compatibilité, nous supprimerons les r dans la documentation incluse.
sed -i 's / r //' * .txt


##########
# Dans cette section, nous compilerons le code source
% construire

# C'est la même chose que de faire `. / Configure` avec un tas de paramètres supplémentaires qui
# nous permet de ne pas commettre d'erreurs.
% configurer

# Ajoutez les options par défaut à créer, le cas échéant.
# Dans mon cas, cela se développe en `make -j3`.
créer% {? _ smp_mflags}


##########
# Ici, nous allons installer le programme dans% buildroot.
% installer

# Comme `make install` avec de nombreux paramètres prédéfinis requis.
% make_install


##########
# Ici, nous auditons les fichiers installés
% des dossiers

# Nous indiquerons les fichiers qui sont de la documentation avec cette fonction
% doc changes.txt license.txt readme.txt

# Ensuite, vous devez lister tous les fichiers qui seront installés.
# Le seul fichier qui installera ceci est / usr / bin / love, ou ce qui est le même:
% _bindir /% nom


##########
# Enfin, vous devez remplir le journal des modifications dans le package
% changelog
* Ven 18 novembre 2011 Jairot Llopis 0.7.2-1
- Première version
@ domain.com>

Nous avons une dernière étape avant de créer le package: installer les dépendances. Nous utiliserons un utilitaire du package miam-utils pour les lire directement à partir du fichier que nous venons de créer.

sudo yum-builddep ~ / rpmbuild / SPECS / love.spec

Cela devrait suffire. Ensuite, nous allons créer le package.

rpmbuild -ba ~ / rpmbuild / SPECS / love.spec

Prêt! Nous avons déjà distribué notre package dans l'arborescence des répertoires. Nous aurons:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM prêt à être installé.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: RPM source prêt à modifier le package avec facilité. Il comprend le fichier SPEC, le code source et les correctifs.
Cependant, avoir le moteur de jeu ne nous fera aucun bien en soi. Dans le prochain épisode, nous verrons comment construire le jeu lui-même.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Swatch dit

    vous pouvez faire un tutoriel pour l'empaquetage de .deb

  2.   Lucas Matias Gomez. dit

    Quel bon tutoriel, j'aimerais aussi que vous en fassiez un pour .deb

  3.   porter dit

    très bon