RPM-verpakking. Deel 3: LÖVE inpakken

We zullen de eerste uitvoeren praktijk de pack met RPM, en het zal de engine van het spel dat we willen spelen inpakken. Zonder dit zou het spel niet werken.

Alles wat je nodig hebt is liefde

ZIET HET is een engine voor 2D-games waarin is geschreven LuaEn Niet Tetris 2 het is een spel gemaakt voor die motor. Vanwege afhankelijkheden op basis van libmpg123 Ze staan ​​niet in de officiële repositories, dus ideaal voor de tutorial.

De SPEC-bestanden die beschikbaar zijn in openSUSE ze hebben als inspiratie gediend.

Download de broncode

U moet de bronnen downloaden en in de map SOURCES plaatsen.

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

Maak een lege spec-sjabloon

Met deze opdracht wordt liefde.spec. In RPM is de naam van de bestanden vrij belangrijk, aangezien de nomenclatuur is gestandaardiseerd om veel dingen aan te geven, zoals je architectuur, versie, release, distro, etc.

cd ~ / rpmbuild / SPECS
rpmdev-newsec liefde

We openen het nieuw gemaakte bestand ~ / rpmbuild / SPECS / love.spec. U zult zien dat het een blanco sjabloon is. Het eerste deel is volgens mij vrij duidelijk. We vullen het met de informatie op de officiële pagina.

Vul het sjabloon in en maak onze eerste SPEC

Hier ziet u hoe het volledige bestand eruitziet met veel opmerkingen die elke sectie uitleggen:

# Naam van het pakket.
# Volgens de norm verwijderen we de umlaut naar de "o".
Naam: liefde

# Versie volgens de oorspronkelijke auteur van het pakket (upstream)
Versie 0.7.2

# Verpakkingsversie. Elke keer dat we het pakket wijzigen, voegen we er een toe aan
# dit nummer. Op deze manier weet yum het te updaten.
Vrijgave: 1% {? Dist}

# Korte beschrijving van het pakket
Samenvatting: LÖVE is een gratis 2D-game-engine voor het eenvoudig maken van games in Lua


# Licentie (alleen de naam)
Licentie: ZLIB

# Programma website
URL: http://love2d.org/

# Exacte URL waarvan de originele bronnen meestal worden gedownload
# in een archief .tar.gz, .zip of iets dergelijks.
#
# Zoals u kunt zien, gebruiken we macro's, zodat we dat niet hoeven te doen als we het pakket bijwerken
# wijzig deze regel. De macro's "naam" en "versie" komen van wat
# hebben we hierboven aangegeven.
Bron0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Afhankelijkheden vereist om het pakket te bouwen.
# We weten dit omdat hij het op zijn website plaatst.
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


##########
# Lange pakketbeschrijving
% Omschrijving
LÖVE is een ongetwijfeld geweldige 2D-game-engine, waarmee je snel kunt gamen
ontwikkeling en prototyping in Lua.

Dit project evolueert voortdurend en veranderingen komen en gaan, soms geïnitieerd
door ons en soms door de aanbevelingen van anderen. Als je een idee hebt hoe
om de game-engine te verbeteren is het zeer gewenst dat u contact met ons opneemt en
laat ons weten wat je denkt.


##########
# In deze sectie zullen we de bronnen voorbereiden om het
# patches als je die hebt
% prep

# Deze macro is een functie die de originele bronnen decomprimeert.
# We geven 2 parameters aan:
# -q: stille modus. Stuur geen berichten voor elk bestand
# uitgepakt.
# -n% name-HEAD: In dit geval wordt bij het uitpakken een map aangemaakt met de naam
#% name-HEAD. Als we dit niet zouden aangeven, zou het programma zoeken
# een genaamd% name-% version en het niet vinden zou een foutmelding geven.
% setup -q -n% name-HEAD

# Zoals u weet, eindigen tekstbestanden die in Windows zijn gemaakt op rn,
# terwijl ze in * nix eindigen, eindigen ze alleen in n. Dus ten goede
# compatibiliteit, zullen we de r's verwijderen in de meegeleverde documentatie.
sed -i 's / r //' * .txt


##########
# In deze sectie zullen we de broncode compileren
% build

# Dit is hetzelfde als het doen van `. / Configure` met een aantal extra parameters die
# maak het ons gemakkelijk om geen fouten te maken.
% configureren

# Voeg de standaardopties toe om te maken, indien aanwezig.
# In mijn geval breidt dit zich uit naar `make -j3`.
maak% {? _ smp_mflags}


##########
# Hier zullen we het programma installeren in% buildroot.
% install

# Zoals `make install` met veel vereiste voorgedefinieerde parameters.
% make_install


##########
# Hier controleren we de geïnstalleerde bestanden
% bestanden

# We zullen de bestanden aangeven die documentatie zijn met deze functie
% doc changes.txt license.txt readme.txt

# Vervolgens moet u alle bestanden vermelden die zullen worden geïnstalleerd.
# Het enige bestand dat dit zal installeren is / usr / bin / love, of wat hetzelfde is:
% _bindir /% naam


##########
# Ten slotte moet u het wijzigingslogboek in het pakket invullen
% changelog
* Vr 18 november 2011 Jairot Llopis 0.7.2-1
- Eerste uitgave
@ domein.com>

We hebben nog een laatste stap voordat we het pakket maken: de afhankelijkheden installeren. We zullen een hulpprogramma uit het pakket gebruiken yum-utils om ze rechtstreeks te lezen vanuit het bestand dat we zojuist hebben gemaakt.

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

Dat zou moeten volstaan. Vervolgens maken we het pakket.

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

Klaar! We hebben ons pakket al gedistribueerd in de directorystructuur. We zullen hebben:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM klaar om te installeren.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM klaar om het pakket gemakkelijk aan te passen. Het bevat het SPEC-bestand, de broncode en de patches.
Het hebben van de game-engine zal ons op zichzelf echter geen goed doen. In de volgende aflevering zullen we zien hoe bouw het spel zelf.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Swatch zei

    je zou een tutorial kunnen doen voor het verpakken van .deb

  2.   Lucas Matías Gomez zei

    Wat een goede tutorial, ik zou ook graag willen dat je er een maakt voor .deb

  3.   portier zei

    muy bueno