Empaquetat RPM. Part 3: empaquetant love

Efectuarem la primera pràctica de empaquetar amb RPM, I serà empaquetant el motor de el joc que volem jugar. Sense ell, el joc no funcionaria.

All you need is love

LOVE és un motor per a jocs 2D escrits en luaNo Tetris 2 és un joc fet per a aquest motor. A causa de dependències basades en libmpg123 no es troben en els repositoris oficials, així que és idoni per al tutorial.

Els fitxers SPEC disponibles a openSUSE m'han servit d'inspiració.

Descarregar el codi font

Caldrà obtenir les fonts i ficar-les a la carpeta SOURCES.

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

Crear una plantilla de spec en blanc

Aquesta comanda crearà love.spec. En RPM és força important el nom dels fitxers, ja que seva nomenclatura està estandarditzada perquè indique moltes coses, com la seva arquitectura, versió, llançament, distro, etc.

cd ~ / rpmbuild / SPECS
rpmdev-newspec love

Obrirem l'acabat de crear fitxer ~ / Rpmbuild / SPECS / love.spec. Veureu que és una plantilla en blanc. La primera part crec que és bastant autoexplicativa. La omplirem amb la informació que es troba a la seva pàgina oficial.

Omplir la plantilla i crear el nostre primer SPEC

Us poso com queda el fitxer complet amb un munt de comentaris que us expliquen cada secció:

# Nom de l'paquet.
# D'acord a l'estàndard, traiem la dièresi a la "o".
Name: love

# Conjunt de programes segons l'autor original de l'paquet (upstream)
Version: 0.7.2

# Conjunt de programes d'empaquetat. Cada vegada que modifiquem el paquet, sumem un a
# Aquest número. D'aquesta manera, yum sap que ha de actualitzar-lo.
Release: 1% {? Dist}

# Descripció breu de l'paquet
Summary: love is a free 2D game engine for easy game creation in Lua


# Llicència (tan sols el nom)
License: ZLIB

# Web de el programa
URL: http://love2d.org/

# URL exacta des de la qual es descarreguen les fonts originals, normalment
# En un arxivador .tar.gz, .zip, o alguna cosa semblant.
#
# Com veieu, fem servir macros perquè si actualitzem el paquet no calgui
# Modificar aquesta línia. Les macros "name" i "versió" provenen del que
# Hem indicat anteriorment.
Source0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Dependències requerides per construir el paquet.
# Això ho sabem perquè ho posa al seu web.
BuildRequires: flac-devel
BuildRequires: Freetype-devel
BuildRequires: glibc-devel
BuildRequires: libmpg123-devel
BuildRequires: libmodplug-devel
BuildRequires: physfs-devel
BuildRequires: taula-libGL-devel
BuildRequires: OpenAL-soft-devel
BuildRequires: devil-devel
BuildRequires: libvorbis-devel
BuildRequires: SDL-devel
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel


###########
# Descripció llarga de el paquet
% description
Love is an unquestionably awesome 2D game engine, which Allows rapid game
development and prototyping a Lua.

This project is Constantly Evolving and changes menja and go, sometimes initiated
by us and sometimes per recommendations of others. If you have an idea on how
to make the game engine better, it is greatly desired that you contact us and
let us know what you think.


###########
# En aquesta secció prepararem les fonts per compilar i aplicaríem els
# Pegats en cas de tenir algun
% prep

# Aquesta macro és una funció que descomprimeix les fonts originals.
# Indiquem 2 paràmetres:
# -Q: Mode calladet. No enviar missatges per cada fitxer
# Descomprimit.
# -N% name-HEAD: En aquest cas a l'descomprimir es crea un directori anomenat
#% Name-HEAD. Si no indicàrem això, el programa buscaria
# Un anomenat% Name-% versio i, al no trobar-lo, donaria error.
% Setup -q -n% name-HEAD

# Com sabreu, els fitxers de text creats en Windows acaben en rn,
# Mentre que a * nix acaben tan sols en n. Per això, per millor
# Compatibilitat, suprimirem els r en la documentació inclosa.
set -i 's / r //' * .txt


###########
# En aquesta secció compilarem el codi font
% build

# Això és el mateix que fer `. / Configure` amb un munt de paràmetres extra que
# Faciliten que no cometem errors.
% configuri

# Afegeix les opcions predeterminades a make, en cas d'haver-les.
# En el meu cas, això s'expandeix a `make -j3`.
make% {? _ smp_mflags}


###########
# Aquí instal·larem el programa dins de% buildroot.
% install

# Com `make install` amb molts paràmetres necessaris predefinits.
% make_install


###########
# Aquí auditem els fitxers instal · lats
% files

# Indicarem els fitxers que són de documentació amb aquesta funció
% Doc changes.txt license.txt readme.txt

# A continuació cal llistar tots els fitxers que s'instal·laran.
# L'únic fitxer que s'instal·larà això és / usr / bin / love, o el que és el mateix:
% _Bindir /% name


###########
# Finalment, cal emplenar el registre de canvis en el paquet
% changelog
* Fri 18 novembre 2011 Jairot Llopis 0.7.2-1
- Versió inicial
@ Dominio.com>

Ens queda un últim pas abans de crear el paquet: instal·lar les dependències. Farem servir una utilitat de el paquet yum-utils per llegir-directament de l'arxiu que acabem de crear.

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

Amb això hauria de ser suficient. A continuació crearem el paquet.

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

Llest! Ja tenim el nostre paquet repartit en l'arbre de directoris. tindrem:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM llest per instal·lar.
  • ~ / Rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM llest per modificar el paquet amb facilitat. Inclou el fitxer SPEC, el codi font i els pegats.
No obstant això, tenir el motor de el joc no ens servirà de res per si sol. En la propera entrega veurem com construir el joc en si.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Swatch va dir

    podies fer un Estatut per empaquetat .deb

  2.   Lucas Matías Gómez va dir

    Que bon tutorial, m'agradaria també que facis un per a .deb

  3.   portar va dir

    molt bo