%if no sistema de empacotamento debian

2010-05-24 Por tôpico Anderson Goulart
Ae pessoal,

Há alguma forma de fazer uma geração de pacotes condicionais? Algo como o
%if / %endif do SPEC para o rpm?

A necessidade é a seguinte, imagine que eu tenha em um control mais de um
package declarado. Mas alguns desses packages só serão gerados caso o host
de build tiver alguns requisitos. Isso pq tenho vários hosts que fazem build
do mesmo pacote e, em alguns casos, dependendo do host/plataforma, alguns
.deb são gerados e outros não.

Eu pensei em gerar um control.in e criar umas macros para isso, mas não
achei a solução tão elegante. Alguém conhece uma outra forma?


abraços, global


Re: %if no sistema de empacotamento debian

2010-05-24 Por tôpico Anderson Goulart
Em 24 de maio de 2010 10:06, Tiago Bortoletto Vaz ti...@debian.orgescreveu:

 Olá Anderson,

 On Mon, 24 May 2010 09:39:23 -0300, Anderson Goulart wrote
  Ae pessoal,
 
  Há alguma forma de fazer uma geração de pacotes condicionais? Algo como o
 %if / %endif do SPEC para o rpm?
 
  A necessidade é a seguinte, imagine que eu tenha em um control mais de um
 package declarado. Mas alguns desses packages só serão gerados caso o host
 de
 build tiver alguns requisitos. Isso pq tenho vários hosts que fazem build
 do
 mesmo pacote e, em alguns casos, dependendo do host/plataforma, alguns .deb
 são gerados e outros não.
 
  Eu pensei em gerar um control.in e criar umas macros para isso, mas não
 achei a solução tão elegante. Alguém conhece uma outra forma?

 Como esta é uma situação que confrontaria com a policy (pois de certa forma
 'legitimaria' um FTBTS), eu penso que não há uma implementação no Debian,
 portanto a tua proposta na minha opinião é elegante o suficiente para algo
 extra-oficial.


Só uma pergunta, o que é um FTBTS?


 Por favor corrijam-me se estiver errado.

 Abraços,

 --
  Tiago Bortoletto Vaz
  http://tiagovaz.org
  0xA504FECA - http://pgp.mit.edu


 --
 To UNSUBSCRIBE, email to debian-devel-portuguese-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive: http://lists.debian.org/20100524125726.m40...@debian.org




Re: %if no sistema de empacotamento debian

2010-05-24 Por tôpico Marco Túlio Gontijo e Silva
Opa Global.

Excerpts from Anderson Goulart's message of Seg Mai 24 11:31:05 -0300 2010:
 Em 24 de maio de 2010 10:06, Tiago Bortoletto Vaz ti...@debian.orgescreveu:
(...)
  On Mon, 24 May 2010 09:39:23 -0300, Anderson Goulart wrote
(...)
   Há alguma forma de fazer uma geração de pacotes condicionais? Algo como o
  %if / %endif do SPEC para o rpm?
  
   A necessidade é a seguinte, imagine que eu tenha em um control mais de um
  package declarado. Mas alguns desses packages só serão gerados caso o host
  de
  build tiver alguns requisitos. Isso pq tenho vários hosts que fazem build
  do
  mesmo pacote e, em alguns casos, dependendo do host/plataforma, alguns .deb
  são gerados e outros não.
  
   Eu pensei em gerar um control.in e criar umas macros para isso, mas não
  achei a solução tão elegante. Alguém conhece uma outra forma?
 
  Como esta é uma situação que confrontaria com a policy (pois de certa forma
  'legitimaria' um FTBTS), eu penso que não há uma implementação no Debian,
  portanto a tua proposta na minha opinião é elegante o suficiente para algo
  extra-oficial.
 
 
 Só uma pergunta, o que é um FTBTS?

Acho que ele quis dizer FTBFS: Fails To Build From Source.

Abraços.
(...)
-- 
marcot
http://wiki.debian.org/MarcoSilva


signature.asc
Description: PGP signature


Re: %if no sistema de empacotamento debian

2010-05-24 Por tôpico Gustavo Franco
Opa,

2010/5/24 Anderson Goulart ander...@goulart.info:

 Em 24 de maio de 2010 10:06, Tiago Bortoletto Vaz ti...@debian.org
 escreveu:

 Olá Anderson,

 On Mon, 24 May 2010 09:39:23 -0300, Anderson Goulart wrote
  Ae pessoal,
 
  Há alguma forma de fazer uma geração de pacotes condicionais? Algo como
  o
 %if / %endif do SPEC para o rpm?
 
  A necessidade é a seguinte, imagine que eu tenha em um control mais de
  um
 package declarado. Mas alguns desses packages só serão gerados caso o host
 de
 build tiver alguns requisitos. Isso pq tenho vários hosts que fazem build
 do
 mesmo pacote e, em alguns casos, dependendo do host/plataforma, alguns
 .deb
 são gerados e outros não.
 
  Eu pensei em gerar um control.in e criar umas macros para isso, mas não
 achei a solução tão elegante. Alguém conhece uma outra forma?

Quais outros critérios além de plataforma você tem? O que você quis
dizer com host? Se fosse só plataforma, você poderia restringir
utilizando o campo Architecture na declaração dos pacotes mesmo[0].

Em outras palavras, se você só quer garantir que amd64 compila coisas
para amd64, é bem simples. Já se você precisa garantir que host foo
compila pacote asd e xyz, mas bar só compila zxc e qwe -- tudo a
partir de um mesmo fonte X. Quando você mandar o fonte X para outro
canto que não seja foo e bar você vai ter um FTBFS para um `set' de
pacotes ou outro. Presumo que era disso que o Tiago falava.

 Como esta é uma situação que confrontaria com a policy (pois de certa
 forma
 'legitimaria' um FTBTS), eu penso que não há uma implementação no Debian,
 portanto a tua proposta na minha opinião é elegante o suficiente para algo
 extra-oficial.


 Só uma pergunta, o que é um FTBTS?

FTBFS = Fail To Build From Source.


 Por favor corrijam-me se estiver errado.

 Abraços,

 --
  Tiago Bortoletto Vaz
  http://tiagovaz.org
  0xA504FECA - http://pgp.mit.edu


 --
 To UNSUBSCRIBE, email to debian-devel-portuguese-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive: http://lists.debian.org/20100524125726.m40...@debian.org




[0] =
http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture
http://www.debian.org/doc/debian-policy/ch-customized-programs.html#s-arch-spec

-- 
-- Gustavo stratus Franco


--
To UNSUBSCRIBE, email to debian-devel-portuguese-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikww-hfmbb33oxssepfczbjs7kxlv1yppov5...@mail.gmail.com



Re: %if no sistema de empacotamento debian

2010-05-24 Por tôpico Anderson Goulart
Em 24 de maio de 2010 11:51, Gustavo Franco stra...@debian.org escreveu:

 Opa,

 2010/5/24 Anderson Goulart ander...@goulart.info:
 
  Em 24 de maio de 2010 10:06, Tiago Bortoletto Vaz ti...@debian.org
  escreveu:
 
  Olá Anderson,
 
  On Mon, 24 May 2010 09:39:23 -0300, Anderson Goulart wrote
   Ae pessoal,
  
   Há alguma forma de fazer uma geração de pacotes condicionais? Algo
 como
   o
  %if / %endif do SPEC para o rpm?
  
   A necessidade é a seguinte, imagine que eu tenha em um control mais de
   um
  package declarado. Mas alguns desses packages só serão gerados caso o
 host
  de
  build tiver alguns requisitos. Isso pq tenho vários hosts que fazem
 build
  do
  mesmo pacote e, em alguns casos, dependendo do host/plataforma, alguns
  .deb
  são gerados e outros não.
  
   Eu pensei em gerar um control.in e criar umas macros para isso, mas
 não
  achei a solução tão elegante. Alguém conhece uma outra forma?

 Quais outros critérios além de plataforma você tem? O que você quis
 dizer com host? Se fosse só plataforma, você poderia restringir
 utilizando o campo Architecture na declaração dos pacotes mesmo[0].


Não é só arquitetura, mas é uma delas. O que eu queria era montar um source
único que fosse capaz de compilar dependendo do que existe na máquina que
estou fazendo o build. Por exemplo:

Imagine que um certo source deb gere dois pacotes:

nome-main e nome-java

Mas o nome-java é uma geração condicional. Ele só deve ser gerado caso eu
tenha instalado na máquina de build o jdk, por exemplo. A idéia é quase que
fazer um debian/control capaz de gerar N pacotes, dependendo de alguma
variável de sistema, ou de algum parâmetro que eu especifique.

Ou seja, o número de pacotes gerados com o debuild depende do host (qual
arquitetura ele é, quais variáveis de ambiente estão configuradas, quais
pacotes estão instalados, etc), sempre com uma com uma opção default, que
gere ao menos 1 pacote com o mínimo de configuração.

Com o RPM eu crio alguns %ifs e consigo com o mesmo source e o mesmo spec
gerar o pacote para várias arquiteturas e várias distros (redhat, suse,
mandriva, etc). Uma das consequências disso que falei acima seria criar um
único source que gerasse pacotes para debian (stable, testing e sid) e para
ubuntu.

Meu cenário é o seguinte: eu tenho um monte de VM, cada qual com sua
configuração e distro instalada. E tenho um script de build que copia o
source (no caso atual, src.rpm) para cada VM e automaticamente roda-se o
rpmbuild. Como o SPEC é cheio de ifs, ele consegue reconhecer qual distro e
qual conf eu tenho em cada máquina de build, gerando um ou mais RPMs para
cada uma.



 Em outras palavras, se você só quer garantir que amd64 compila coisas
 para amd64, é bem simples. Já se você precisa garantir que host foo
 compila pacote asd e xyz, mas bar só compila zxc e qwe -- tudo a
 partir de um mesmo fonte X. Quando você mandar o fonte X para outro
 canto que não seja foo e bar você vai ter um FTBFS para um `set' de
 pacotes ou outro. Presumo que era disso que o Tiago falava.


Imagino que era essa a idéia colocada por ele. Como parece que essas idéias
confrontam com a Policy, isso já foi discutido em algum momento, já que elas
poderiam reduzir o trabalho dos matenedores?


  Como esta é uma situação que confrontaria com a policy (pois de certa
  forma
  'legitimaria' um FTBTS), eu penso que não há uma implementação no
 Debian,
  portanto a tua proposta na minha opinião é elegante o suficiente para
 algo
  extra-oficial.
 
 
  Só uma pergunta, o que é um FTBTS?

 FTBFS = Fail To Build From Source.



thanks!



Abraços, global


Re: %if no sistema de empacotamento debian

2010-05-24 Por tôpico Tiago Bortoletto Vaz
On Mon, May 24, 2010 at 11:37:31AM -0300, Marco Túlio Gontijo e Silva wrote:
[...]
   Como esta é uma situação que confrontaria com a policy (pois de certa 
   forma
   'legitimaria' um FTBTS), eu penso que não há uma implementação no Debian,
   portanto a tua proposta na minha opinião é elegante o suficiente para algo
   extra-oficial.
  
  
  Só uma pergunta, o que é um FTBTS?
 
 Acho que ele quis dizer FTBFS: Fails To Build From Source.

Isso mesmo. Obrigado, Marco.

Abraços,

-- 

  .''`.  Tiago Bortoletto Vaz GPG  :  1024D/A504FECA
 : :' :  http://tiagovaz.org  XMPP : tiago at jabber.org
 `. `'   tiago at {tiagovaz,debian}.org   IRC  :   tiago at OFTC
   `-Debian GNU/Linux - The Universal OS   http://www.debian.org



--
To UNSUBSCRIBE, email to debian-devel-portuguese-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100524194330.ga2...@debian.org