Criar um pacote RPM com o executável do Lazarus

Espaço reservado para desenvolvimento de empacotamento de softwares Mageia no Brasil.

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor will » Seg Fev 16, 2015 1:51 am

unix007 escreveu:
will escreveu:
As the package is being removed, its %preun and %postun scripts are executed.

:D depois do %postun


Dê um exemplo disso will,para facilitar o aprendizado.Pois ainda não entendi o que você mencionou.

Um spec nada mas é que um arquivo com linhas a serem seguidas pelo rpm build, tags que indicam uma informaçao, pode ser o nome do arquivo, um site, ou as instruçoes para o compilado, o único jeito de empacotar é lendo sobre isso, eu nunca usei para empacotar todas as tags que u rpmbuild usa, nem conheço elas, é das que conheço nem entendo muito o funcionamento, o unico jeito e fazendo, no meio do rpmbuild ele vai indicando erros e endicando a linha do erro, aveces temos que editar muitas fezes o spec para ele funcionar. %postun é uma tag no espec que indica o que o instalador deve fazer depois de desinstalar este pacote, geralmente "limpar" arquivos.
nosXw
Imagem
Avatar do usuário
will
Super Mago Mageia
Super Mago Mageia
 
Mensagens: 740
Registrado em: Qui Mai 02, 2013 11:39 pm

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor blaisewirth » Seg Fev 16, 2015 2:42 am

will escreveu:funciona esse spec?

Funciona sim :D construí o RPM, instalei o RPM e desinstalei o RPM, tudo funcionou perfeitamente
will escreveu:lembre de seguir os passos para empacotar rpm do site da mageia, porque embora o rpm exista ja faz como 20 anos, cada distro tem o seu "jeito" de fazer o spec. Por exemplo a maioria do seu %prep acho que da pra fazer de forma automatica, também o uso do xdg-desktop-menu acho que é meio anticuado, talvez eu esteja falando besteira xD

eu li boa parte desta página https://wiki.mageia.org/en/Packaging_guidelines#Desktop_files
e tem muitos links redirecionando para http://www.freedesktop.org/wiki/Specifications/
baseado nestas 2 páginas http://www.freedesktop.org/wiki/Specifications/menu-spec/ e http://portland.freedesktop.org/xdg-utils-1.0/xdg-desktop-menu.html eu encontrei o método do xdg-desktop-menu... se houver outro método... compartilhe um exemplo para que eu possa pesquisar e adaptar/atualizar o meu .spec
will escreveu:Blaisewirth, talvez vc possa fazer aulas em portugues sobre empacotar rpm, sería realmente muito construtivo para toda a comunidade rpm no brasil, fedora, mageia, mandriva, pclinux etc

vou estudar mais a respeito de criação de rpm, talvez grave algumas vídeo aulas com áudio (no prometo nada) :)
Imagem
Software gets slower faster than hardware gets faster.
Niklaus Wirth
Avatar do usuário
blaisewirth
Colaborador Mageia
Colaborador Mageia
 
Mensagens: 12
Registrado em: Sáb Fev 14, 2015 11:09 am

Estudando

Mensagempor blaisewirth » Seg Fev 16, 2015 7:33 pm

will estive pesquisando mais e encontrei este artigo: https://linuxcritic.wordpress.com/2010/ ... ktop-file/

Neste artigo, descobri que Freedesktop.org(links que citei no post acima) mantém uma série de normas para X desktops, que se aplicam ao Gnome, KDE, LXDE e XFCE.
E também que o simples fato de o arquivo .desktop estar no diretório /usr/share/applications/ é suficiente para criar a entrada no menu, ou seja, os comandos xdg-desktop-menu são totalmente desnecessários(você tem razão). :oops:

Em relação ao %prep, vou começar a estudar sobre RPMMacros http://fedoraproject.org/wiki/Packaging:RPMMacros e acredito que consiga reduzir também ;)

por fim deixo esse link http://fedoraproject.org/wiki/Packaging:Guidelines (acredito ser a página mais completa a respeito do assunto)

novo arquivo .spec (construí o RPM, instalei o RPM e desinstalei o RPM, tudo funcionou perfeitamente :P )

Código: Selecionar todos
%define name      mgadobrasil
%define version   1.0
%define release   mga
%define dir       mgadobrasil
%define root      /home/natan/tmp/ROOT/

Summary:          Pacote RPM de Exemplo
Name:             %{name}
Version:          %{version}
Release:          %{release}
Vendor:           Mageia do Brasil
URL:              www.mageiadobrasil.com.br
License:          Distribuível livremente
Group:            Documentation
Packager:         blaisewirth
Source0:          %{name}.tar.bz2
BuildRoot:        %{root}

%description
O mgadobrasil é um exemplo de como criar um pacote rpm.

%prep
cd $RPM_SOURCE_DIR
cp %{name}.tar.bz2 $RPM_BUILD_DIR
cd $RPM_BUILD_DIR
rm -rf %{dir}
rm -f %{name}.tar
bunzip2 -d %{name}.tar.bz2
tar -xvf %{name}.tar

%install
rm -rf $RPM_BUILD_ROOT
cp -r $RPM_BUILD_DIR/%{dir}/ $RPM_BUILD_ROOT/

%clean
rm -rf $RPM_BUILD_DIR/*.*

%files
/usr/bin/%{name}
/usr/share/applications/%{name}.desktop
/usr/share/pixmaps/%{name}.ico

%changelog

* Sat Feb 14 2015 mgadobrasil-1.0-mga.i386.rpm

- O pacote de instalação do mgadobrasil para linux é criado.


Qualquer sugestão que possa deixar o .spec acima mais "clean" será muito bem vinda.... continuarei estudando a respeito do tema para melhorar o .spec
Imagem
Software gets slower faster than hardware gets faster.
Niklaus Wirth
Avatar do usuário
blaisewirth
Colaborador Mageia
Colaborador Mageia
 
Mensagens: 12
Registrado em: Sáb Fev 14, 2015 11:09 am

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor unix007 » Ter Fev 17, 2015 6:52 pm

Parabéns will e blaisewirth pelo belo trabalho,e continuem assim,tudo que foi dito até aqui facilitou o meu aprendizado.
O seu recalque bate no IPTABLES e dropa.
Avatar do usuário
unix007
Colaborador Intermediario Mageia
Colaborador Intermediario Mageia
 
Mensagens: 118
Registrado em: Qui Jan 29, 2015 10:39 pm
Localização: Jaraguá do sul,SC

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor unix007 » Dom Fev 22, 2015 11:16 am

mgadobrasil
mgadobrasil/usr
mgadobrasil/usr/share
mgadobrasil/usr/share/applications/ => contém um arquivo .dektop (usado para criar uma entrada no menu)
mgadobrasil/usr/share/pixmaps/ => contém um arquivo .ico (ìcone)
mgadobrasil/usr/bin/ => contém o arquivo binário gerado pelo lazarus

Eu tenho que criar esse conjunto de diretórios ou tenho que dar permissão de leitura com o root?
O seu recalque bate no IPTABLES e dropa.
Avatar do usuário
unix007
Colaborador Intermediario Mageia
Colaborador Intermediario Mageia
 
Mensagens: 118
Registrado em: Qui Jan 29, 2015 10:39 pm
Localização: Jaraguá do sul,SC

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor will » Dom Fev 22, 2015 11:59 am

não entendí a pergunta
nosXw
Imagem
Avatar do usuário
will
Super Mago Mageia
Super Mago Mageia
 
Mensagens: 740
Registrado em: Qui Mai 02, 2013 11:39 pm

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor unix007 » Dom Fev 22, 2015 12:08 pm

Esse conjunto de diretórios eu crio no mageia ou coloco o no arquivo.spec? ou as duas coisas?
O seu recalque bate no IPTABLES e dropa.
Avatar do usuário
unix007
Colaborador Intermediario Mageia
Colaborador Intermediario Mageia
 
Mensagens: 118
Registrado em: Qui Jan 29, 2015 10:39 pm
Localização: Jaraguá do sul,SC

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor will » Dom Fev 22, 2015 4:41 pm

no caso no spec que o companheiro postou as pastas sao criadas no spec, ou seja, coladas no build root
%install
rm -rf $RPM_BUILD_ROOT
cp -r $RPM_BUILD_DIR/%{dir}/ $RPM_BUILD_ROOT/

porque por exemplo, si quer instalar um arquivo em /usr/share/teste, no spec deve ser criado mkdir -p o buildroot/datadir/teste antes de mover o arquivo, si não for feito isso ele vai acusar um erro de que não existe o path, é coisa de ir empacotando e ver os erros
nosXw
Imagem
Avatar do usuário
will
Super Mago Mageia
Super Mago Mageia
 
Mensagens: 740
Registrado em: Qui Mai 02, 2013 11:39 pm

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor blaisewirth » Dom Fev 22, 2015 5:59 pm

unix007 escreveu:Esse conjunto de diretórios eu crio no mageia ou coloco o no arquivo.spec? ou as duas coisas?

O amigo will já respondeu no post acima

https://drive.google.com/open?id=0B2NiB ... authuser=0 (faça o download do exemplo "RPM.tar.bz2")
na pasta sources contém o "mgadobrasil.tar.bz2" que por sua vez contém toda a estrutura de pastas
mgadobrasil
mgadobrasil/usr
mgadobrasil/usr/share
mgadobrasil/usr/share/applications/ => contém um arquivo .dektop (usado para criar uma entrada no menu)
mgadobrasil/usr/share/pixmaps/ => contém um arquivo .ico (ìcone)
mgadobrasil/usr/bin/ => contém o arquivo binário gerado pelo lazarus


no arquivo .spec o comando:
Código: Selecionar todos
cp -r $RPM_BUILD_DIR/%{dir}/ $RPM_BUILD_ROOT/


copia o conteúdo de "mgadobrasil.tar.bz2" para BUILDROOT (ou seja, toda estrutura de pastas é copiada)
Imagem
Software gets slower faster than hardware gets faster.
Niklaus Wirth
Avatar do usuário
blaisewirth
Colaborador Mageia
Colaborador Mageia
 
Mensagens: 12
Registrado em: Sáb Fev 14, 2015 11:09 am

Re: Criar um pacote RPM com o executável do Lazarus

Mensagempor unix007 » Qua Fev 25, 2015 9:37 pm

blaisewirth você vai fazer uma vídeo aula sobre o assunto?
O seu recalque bate no IPTABLES e dropa.
Avatar do usuário
unix007
Colaborador Intermediario Mageia
Colaborador Intermediario Mageia
 
Mensagens: 118
Registrado em: Qui Jan 29, 2015 10:39 pm
Localização: Jaraguá do sul,SC

AnteriorPróximo

Voltar para Empacotamento de software

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes

cron