Confezione RPM. Parte 3: imballaggio LÖVE

Effettueremo il primo pratica de pacchetto con RPMe confezionerà il motore del gioco che vogliamo giocare. Senza di esso, il gioco non funzionerebbe.

Tutto ciò di cui hai bisogno è l'amore

AMORE è un motore per giochi 2D scritti in formato prendereNon Tetris 2 è un gioco fatto per detto motore. A causa di dipendenze basate su libmpg123 Non sono nei repository ufficiali, quindi è l'ideale per il tutorial.

I file SPEC disponibili in openSUSE sono serviti da ispirazione.

Scarica il codice sorgente

Dovrai scaricare i sorgenti e metterli nella cartella SOURCES.

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

Crea un modello di specifiche vuoto

Questo comando creerà amore.spec. In RPM il nome dei file è abbastanza importante, poiché la sua nomenclatura è standardizzata per indicare molte cose, come la tua architettura, versione, rilascio, distro, ecc.

cd ~ / rpmbuild / SPECS
rpmdev-newspec amore

Apriremo il file appena creato ~ / rpmbuild / SPECS / love.spec. Vedrai che è un modello vuoto. La prima parte penso sia abbastanza autoesplicativa. Lo riempiremo con le informazioni trovate sulla sua pagina ufficiale.

Compila il modello e crea il nostro primo SPEC

Ecco come appare il file completo con molti commenti che spiegano ogni sezione:

# Nome del pacchetto.
# Secondo lo standard, rimuoviamo l'umlaut dalla "o".
Nome: amore

# Versione secondo l'autore originale del pacchetto (a monte)
Versione: 0.7.2

# Versione packaging. Ogni volta che modifichiamo il pacchetto, ne aggiungiamo uno a
# questo numero. In questo modo yum sa aggiornarlo.
Rilascio: 1% {? Dist}

# Breve descrizione del pacchetto
Riepilogo: LÖVE è un motore di gioco 2D gratuito per creare facilmente giochi in Lua


# Licenza (solo il nome)
Licenza: ZLIB

# Sito web del programma
URL: http://love2d.org/

# URL esatto da cui vengono scaricate le fonti originali, di solito
# in un archivio .tar.gz, .zip o qualcosa di simile.
#
# Come puoi vedere, usiamo le macro in modo che se aggiorniamo il pacchetto non ci sia
# modifica questa riga. Le macro "nome" e "versione" derivano da cosa
# abbiamo indicato sopra.
Fonte0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Dipendenze richieste per creare il pacchetto.
# Lo sappiamo perché lo mette sul suo sito 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


##########
# Descrizione lunga del pacchetto
% descrizione
LÖVE è un motore di gioco 2D indiscutibilmente fantastico, che consente un gioco rapido
sviluppo e prototipazione a Lua.

Questo progetto è in continua evoluzione e i cambiamenti vanno e vengono, a volte iniziati
da noi e talvolta dalle raccomandazioni di altri. Se hai un'idea su come
per migliorare il motore di gioco, è fortemente auspicabile che ci contatti e
Fateci sapere cosa ne pensate.


##########
# In questa sezione prepareremo i sorgenti per compilare e applicare il
# patch se ne hai
% prep

# Questa macro è una funzione che decomprime i sorgenti originali.
# Indichiamo 2 parametri:
# -q: modalità silenziosa. Non inviare messaggi per ogni file
# decompresso.
# -n% name-HEAD: In questo caso, quando si decomprime una directory viene creata chiamata
#% name-HEAD. Se non lo indichiamo, il programma cercherà
# uno chiamato% name-% versione e non trovarlo darebbe un errore.
% setup -q -n% name-HEAD

# Come sai, i file di testo creati in Windows finiscono con rn,
# mentre in * nix finiscono solo in n. Quindi in meglio
# compatibilità, rimuoveremo le r dalla documentazione inclusa.
sed -i 's / r //' * .txt


##########
# In questa sezione compileremo il codice sorgente
% build

# È lo stesso di fare `. / Configure` con un mucchio di parametri extra che
# rendici facile non commettere errori.
% configure

# Aggiungi le opzioni predefinite da fare, se presenti.
# Nel mio caso, questo si espande in `make -j3`.
crea% {? _ smp_mflags}


##########
# Qui installeremo il programma all'interno di% buildroot.
% install

# Come `make install` con molti parametri predefiniti richiesti.
% make_install


##########
# Qui controlliamo i file installati
% File

# Indicheremo i file che sono documentazione con questa funzione
% doc changes.txt license.txt readme.txt

# Successivamente devi elencare tutti i file che verranno installati.
# L'unico file che installerà questo è / usr / bin / love, o qual è lo stesso:
% _bindir /% nome


##########
# Infine, devi compilare il registro delle modifiche nel pacchetto
% changelog
* Ven 18 novembre 2011 Jairot Llopis 0.7.2-1
- Versione iniziale
@ dominio.com>

Abbiamo un ultimo passaggio prima di creare il pacchetto: installare le dipendenze. Useremo un'utilità dal pacchetto yum-utils per leggerli direttamente dal file che abbiamo appena creato.

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

Dovrebbe bastare. Successivamente creeremo il pacchetto.

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

Pronto! Abbiamo già il nostro pacchetto distribuito nell'albero delle directory. Avremo:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM pronto per l'installazione.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM pronto per modificare il pacchetto con facilità. Include il file SPEC, il codice sorgente e le patch.
Tuttavia, avere il motore di gioco non ci servirà da solo. Nella prossima puntata vedremo come costruire il gioco stesso.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Swatch suddetto

    potresti fare un tutorial per pacchettizzare .deb

  2.   Lucas matias gomez suddetto

    Che bel tutorial, vorrei anche che ne facessi uno per .deb

  3.   facchino suddetto

    muy bueno