RPM-förpackning. Del 3: packning av LÖVE

Vi kommer att genomföra den första praktiken de packa med RPM, och det kommer att förpacka motorn i spelet vi vill spela. Utan det skulle spelet inte fungera.

Allt du behöver är kärlek

SE DET är en motor för 2D-spel skrivna in luaOch Inte Tetris 2 det är ett spel som gjorts för nämnda motor. På grund av beroende beroende på libmpg123 De finns inte i de officiella förvaren, så det är perfekt för självstudien.

SPEC-filer tillgängliga i openSUSE de har fungerat som inspiration.

Ladda ner källkod

Du måste ladda ner källorna och lägga dem i källkällan.

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

Skapa en tom specifik mall

Detta kommando kommer att skapa kärlek.spec. I RPM är namnet på filerna ganska viktigt, eftersom dess nomenklatur är standardiserad så att den indikerar många saker, som dess arkitektur, version, release, distro, etc.

cd ~ / rpmbuild / SPECS
rpmdev-newspaperec kärlek

Vi öppnar den nyskapade filen ~ / rpmbuild / SPECS / love.spec. Du kommer att se att det är en tom mall. Den första delen tycker jag är ganska självförklarande. Vi fyller det med informationen finns på dess officiella sida.

Fyll i mallen och skapa vår första SPEC

Jag lägger ut hur hela filen ser ut med många kommentarer som förklarar varje avsnitt:

# Paketets namn.
# Enligt standarden tar vi bort paraplyet till "o".
Namn: kärlek

# Version enligt den ursprungliga författaren till paketet (uppströms)
Version: 0.7.2

# Förpackningsversion. Varje gång vi ändrar paketet lägger vi till ett till
# detta nummer. På så sätt vet yum att uppdatera det.
Släpp: 1% {? Dist}

# Kort beskrivning av paketet
Sammanfattning: LÖVE är en gratis 2D-spelmotor för enkel spelskapande i Lua


# Licens (bara namnet)
Licens: ZLIB

# Programwebbplats
URL: http://love2d.org/

# Exakt webbadress från vilken originalkällorna laddas ner, vanligtvis
# i ett arkiv .tar.gz, .zip eller något liknande.
#
# Som du kan se använder vi makron så att om vi uppdaterar paketet finns det inget
# ändra den här raden. Makron "namn" och "version" kommer från vad
# vi har angett ovan.
Källa0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Beroenden som krävs för att bygga paketet.
# Vi vet detta eftersom han lägger det på sin webbplats.
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-utveckling
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel


###########
# Lång paketbeskrivning
% beskrivning
LÖVE är en otvivelaktigt fantastisk 2D-spelmotor som möjliggör snabbt spel
utveckling och prototyper i Lua.

Detta projekt utvecklas ständigt och förändringar kommer och går, ibland initierade
av oss och ibland av andras rekommendationer. Om du har en idé om hur
för att göra spelmotorn bättre är det mycket önskvärt att du kontaktar oss och
låt oss veta vad du tycker.


###########
# I det här avsnittet förbereder vi källorna för att sammanställa och tillämpa
# lappar om du har några
% förberedelse

# Detta makro är en funktion som dekomprimerar de ursprungliga källorna.
# Vi anger två parametrar:
# -q: Tyst läge. Skicka inte meddelanden för varje fil
# uppackad.
# -n% name-HEAD: I det här fallet när en katalog skapas kallas
#% name-HEAD. Om vi ​​inte angav detta skulle programmet söka
# en som heter% name-% version och att inte hitta den skulle ge ett fel.
% setup -q -n% name-HEAD

# Som du vet slutar textfiler som skapats i Windows i rn,
# medan i * nix slutar de bara i n. Så till det bättre
# kompatibilitet, vi tar bort r-skivorna i den medföljande dokumentationen.
sed -i's / r // '* .txt


###########
# I detta avsnitt kommer vi att sammanställa källkoden
% bygga

# Detta är detsamma som att göra `. / Konfigurera 'med en massa extra parametrar som
# gör det lätt för oss att inte göra misstag.
% konfigurera

# Lägg till standardalternativen för att göra, om någon.
# I mitt fall expanderar detta till `make -j3`.
göra% {? _ smp_mflags}


###########
# Här installerar vi programmet inuti% buildroot.
% Installera

# Gilla `gör installation` med många nödvändiga fördefinierade parametrar.
% make_install


###########
# Här granskar vi de installerade filerna
% filer

# Vi anger de filer som är dokumentation med den här funktionen
% doc changes.txt licens.txt readme.txt

# Därefter måste du lista alla filer som kommer att installeras.
# Den enda filen som kommer att installera detta är / usr / bin / love, eller vad är detsamma:
% _bindir /% name


###########
# Slutligen måste du fylla i paketets ändringslogg
% förändringslogg
* Fre 18 nov 2011 Jairot Llopis 0.7.2-1
- Första utgåvan
@ domain.com>

Vi har ett sista steg innan du skapar paketet: att installera beroenden. Vi använder ett verktyg från paketet yum-utils att läsa dem direkt från filen vi just skapade.

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

Det borde räcka. Därefter skapar vi paketet.

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

Redo! Vi har redan vårt paket distribuerat i katalogträdet. Vi kommer att ha:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM redo att installeras.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: RPM-källa redo att enkelt ändra paketet. Den innehåller SPEC-filen, källkoden och korrigeringsfilerna.
Att ha spelmotorn kommer dock inte att göra något för sig själv. I nästa del kommer vi att se hur bygga själva spelet.

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

      Swatch sade

    du kan göra en handledning för förpackning av .deb

      Lucas matias gomez sade

    Vilken bra handledning, jag skulle också vilja att du skapar en för .deb

      porter sade

    muy bueno