Empacotamento RPM. Parte 3: embalagem LÖVE

Vamos realizar o primeiro praticar de embalar com RPM, e embalará o motor do jogo que queremos jogar. Sem ele, o jogo não funcionaria.

Tudo o que você precisa é amor

VÊ ISSO é um motor para jogos 2D escrito em LuaNão é Tetris 2 é um jogo feito para o referido motor. Devido às dependências baseadas em libmpg123 Eles não estão nos repositórios oficiais, por isso são ideais para o tutorial.

Arquivos SPEC disponíveis em openSUSE eles serviram de inspiração.

Baixe o código fonte

Você terá que baixar as fontes e colocá-las na pasta SOURCES.

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

Crie um modelo de especificação em branco

Este comando irá criar amor.espec. No RPM o nome dos arquivos é bastante importante, uma vez que sua nomenclatura é padronizada de modo que indica muitas coisas, como sua arquitetura, versão, lançamento, distribuição, etc.

cd ~ / rpmbuild / SPECS
amor rpmdev-newspec

Vamos abrir o arquivo recém-criado ~ / rpmbuild / SPECS / love.spec. Você verá que é um modelo em branco. A primeira parte, eu acho, é bastante autoexplicativa. Nós o preencheremos com as informações encontradas em sua página oficial.

Preencha o modelo e crie nosso primeiro SPEC

Eu coloquei a aparência do arquivo completo com muitos comentários que explicam cada seção:

# Nome do pacote.
# De acordo com o padrão, removemos o trema para o "o".
Nome: amor

# Versão de acordo com o autor original do pacote (upstream)
Versão: 0.7.2

# Versão da embalagem. Cada vez que modificamos o pacote, adicionamos um
# este número. Desta forma, o yum sabe como atualizá-lo.
Liberação: 1% {? Dist}

# Breve descrição do pacote
Resumo: LÖVE é um motor de jogo 2D gratuito para fácil criação de jogos em Lua


# Licença (apenas o nome)
Licença: ZLIB

# Site do programa
URL: http://love2d.org/

# URL exata da qual as fontes originais são baixadas, geralmente
# em um arquivo .tar.gz, .zip ou algo semelhante.
#
# Como você pode ver, usamos macros para que, se atualizarmos o pacote, não haja
# modifique esta linha. As macros "nome" e "versão" vêm de onde
# indicamos acima.
Source0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Dependências necessárias para construir o pacote.
# Sabemos disso porque ele coloca em seu site.
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


##########
# Descrição longa do pacote
% descrição
LÖVE é um motor de jogo 2D inquestionavelmente incrível, que permite jogos rápidos
desenvolvimento e prototipagem em Lua.

Este projeto está em constante evolução e as mudanças vêm e vão, às vezes iniciadas
por nós e às vezes por recomendações de outros. Se você tem uma ideia de como
para tornar o motor de jogo melhor, é muito desejável que você entre em contato conosco e
deixe-nos saber o que você pensa.


##########
# Nesta seção, prepararemos as fontes para compilar e aplicar o
# patches se você tiver algum
% prep

# Esta macro é uma função que descompacta as fontes originais.
# Indicamos 2 parâmetros:
# -q: modo silencioso. Não envie mensagens para cada arquivo
# descompactado.
# -n% name-HEAD: Neste caso, ao descompactar um diretório é criado chamado
#% name-HEAD. Se não indicássemos isso, o programa pesquisaria
# um chamado% name-% version e não encontrá-lo resultaria em erro.
% setup -q -n% name-HEAD

# Como você sabe, os arquivos de texto criados no Windows terminam em rn,
# enquanto em * nix eles terminam apenas em n. Então para melhor
# compatibilidade, removeremos os r's da documentação incluída.
sed -i 's / r //' * .txt


##########
# Nesta seção, iremos compilar o código-fonte
% Construir

# Isso é o mesmo que fazer `. / Configure` com um monte de parâmetros extras que
# torna mais fácil para não cometermos erros.
% configure

# Adicione as opções padrão para fazer, se houver.
# No meu caso, isso se expande para `make -j3`.
make% {? _ smp_mflags}


##########
# Aqui iremos instalar o programa dentro de% buildroot.
% install

# Como `make install` com muitos parâmetros pré-definidos necessários.
% make_install


##########
# Aqui nós auditamos os arquivos instalados
% arquivos

# Vamos indicar os arquivos que são documentação com esta função
% doc changes.txt license.txt readme.txt

# Em seguida, você deve listar todos os arquivos que serão instalados.
# O único arquivo que irá instalar isso é / usr / bin / love, ou o que é igual:
% _bindir /% name


##########
# Finalmente, você deve preencher o log de alterações do pacote
% changelog
* Sexta-feira, 18 de novembro de 2011 Jairot Llopis 0.7.2-1
- Lançamento inicial
@ dominio.com>

Temos uma última etapa antes de criar o pacote: instalar as dependências. Usaremos um utilitário do pacote yum-utils para lê-los diretamente do arquivo que acabamos de criar.

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

Isso deve bastar. Em seguida, criaremos o pacote.

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

Pronto! Já temos nosso pacote distribuído na árvore de diretórios. Nós teremos:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM pronto para instalar.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM pronto para modificar o pacote com facilidade. Inclui o arquivo SPEC, o código-fonte e os patches.
No entanto, ter o motor de jogo não nos fará nenhum bem por si só. Na próxima edição, veremos como construir o próprio jogo.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Swatch dito

    você poderia fazer um tutorial para empacotar .deb

  2.   Lucas matias gomez dito

    Que bom tutorial, também gostaria que você fizesse um para .deb

  3.   Portaro dito

    muito bom