<div dir="ltr">Obrigado pelas respostas, bastante informacao util.<div><br></div><div>Achei bem interessante o lance do Alien. Vou olhar com mais calma depois. A principio, resolveria o problema.</div><div><br></div><div>Apesar de concordar com o Blabos em varios pontos, ainda acho que pra quem nao liga ou nao se importa com Perl, CPAN, etc, vai simplesmente dizer "ah, esse troco nao funciona". E exatamente isso que quero evitar, atitude que infelizmente tenho visto cada vez mais devido as tendencias da galera considerar varias coisas como caixas pretas, ao inves de perder 3~5 min descobrindo o problema.</div>

<div><br></div><div>Sobre RPMs, chega a ser quase trivial, uma vez que se acostuma. Acho que o que vai dar mais trabalho e a burocracia de incluir o RPM no repositorio Contrib. Lembro que o Debian parecia uma sociedade secreta, so entrava apadrinhado ou depois de ralar muito, algo assim.</div>

<div><br></div><div>O pacote na distro parece o mais limpo. E como so me importo em dar suporte ao CentOS (e talvez Debian) pode ser o caminho. Se acontecer algo com o Alien aviso quanto trabalho deu. Parece ser a solucao mais interessante porque o CPAN funcionaria sozinho.</div>

<div><br></div><div>Abs</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-08-08 11:53 GMT-07:00 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Opa,<div class=""><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">> Mas me deixa nervoso ter algo no CPAN que nao seria instalado perfeitamente pelo</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">> CPAN na distribuicao padrao. Tenho quase certeza que o maximo que posso fazer</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">> e deixar um warning gigante no POD, mas queria conferir com voces.</span><br></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>


</div><div><span style="font-family:arial,sans-serif;font-size:13px">Isso (nervoso) não faz sentido e eu vou tentar clarificar o porquê.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px">Vários módulos são wrappers em Perl para bibliotecas que não fazem parte da distribuição padrão, portanto, não faz sentido, querer o módulo, sem ter a biblioteca.</span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Aliás, a biblioteca não estar instalada na distribuição padrão é análoga ao módulo não estar no core do Perl.</span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Então é natural que alguns módulos não core, esperem ter disponível uma biblioteca "não core" da distribuição.</span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font face="arial, sans-serif">lalala-lib X lalala-lib-dev</font></div><div><font face="arial, sans-serif">==================</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Quando essa integração com bibliotecas externas acontece, é necessário um pouco de cola em XS, que nada mais é do que um "C com esteróides".</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Esse XS precisa ser compilado durante a instalação do módulo. Por quê? Porque sendo código C que vai virar binário, ele precisa ser exatamente compatível com os binários específicos (*.so/*.a) que você você tem na sua máquina. Coisas de build/linking, podemos detalhar mais em outra ocasião.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Para compilar o XS, você vai precisar dos arquivos de cabeçalho em C (*.h), bem como do compilador e ferramentas conjuntas. Esses arquivos avisam pro compilador, qual a assinatura das funções da lib externa que você está usando. Como eles são usados somente na compilação, eles são distribuídos em separado em pacotes lalala-lib-dev.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Já o seu módulo, depois de compilado, vai usar os binários da biblioteca e não vai estar nem aí mais pros cabeçalhos.</font></div><div>


<font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">O triste aqui é que quando você está falando de pacotes que são distribuídos de forma binária, vc pode pré-compilar e empacotar as libs sem os cabeçalhos. Mas quando você está falando de módulo Perl que precisa rodar em mais de 90 arquiteturas, o que for em XS precisa ser compilado especificamente para aquela máquina.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">O que normalmente acontece é que os módulos mais famosos costumam ter um padrinho, que os compila para as principais arquiteturas onde a distribuição linux roda e por isso vc consegue instala-los com yum ou apt-get.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Como isso dá um trabalho do cacete, nem todos os módulos tem pacotes da distro, e normalmente eles não são as versões mais atualizadas.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Lembro-me que uma vez o Solli tinha pensado em fazer algo a respeito, mas não sei o que deu dessa história. Só sei que o trabalho pra manter os milhares de módulos do CPAN com um pacote atualizado pra cada distro e pra cada arquitetura deve ser gigantesco.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Samir,</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Acredito que pro seu caso, como é só um módulo, vc possa montar um pacote para principais distros/arquiteturas colocando as libs externas como dependência. Talvez nem dê tanto trabalho assim.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Assim, quando alguém der apt-get seu-modulo, o próprio apt-get vai baixar as bibliotecas necessárias, sem precisar dos lalala-lib-dev, já que ele já vai estar compilado.</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Ou então usar a sugestão do Cron mesmo.</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Essa eu nunca tentei. Ok, nunca tentei nenhuma das duas :)</font></div>


<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Tá aí um bom tema para uma apresentação num ET ou YAPC da vida.</font></div><div><font face="arial, sans-serif"><br></font></div><div>


<font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">[]'s</font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">


2014-08-08 15:28 GMT-03:00 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span>:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">Hm<div>acho que você procura algo sobre isso:</div><div><a href="https://metacpan.org/pod/Alien" target="_blank">https://metacpan.org/pod/Alien</a><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">


2014-08-08 15:14 GMT-03:00 Samir Cury <span dir="ltr"><<a href="mailto:samircurys@gmail.com" target="_blank">samircurys@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Perlssoal,<div><br></div><div>Estou testando como um modulo que escrevi instala em um CentOS 6 puro, para que no fim eu me livre do selo "works on my machine".</div>




<div><br></div><div>Percebi que o CPAN vai sofrer um pouco se nao houver "expat-devel" e "gcc" instalados no sistema. Pode-se argumentar que e fora do escopo do CPAN, resolver problemas como este.</div>





<div><br></div><div>O que me faz sentir falta do Slackware, que ja vinha bem completo e era so alegria.</div><div><br></div><div>O que pensei em fazer e um RPM para o Fedora/CentOS que contem estas dependencias. Beleza, dai o cara pode usar yum install perl-package-name ou yum install 'perl(Package::Name)'.</div>





<div><br></div><div>Mas me deixa nervoso ter algo no CPAN que nao seria instalado perfeitamente pelo CPAN na distribuicao padrao. Tenho quase certeza que o maximo que posso fazer e deixar um warning gigante no POD, mas queria conferir com voces.</div>





<div><br></div><div>Se precisarem, o modulo e HTCondor::Queue::Parser. Por acidente achei o report no CPAN Testers, que parece bem tranquilo :<br><br><a href="http://www.cpantesters.org/distro/H/HTCondor-Queue-Parser.html?oncpan=1&distmat=1&version=0.04" target="_blank">http://www.cpantesters.org/distro/H/HTCondor-Queue-Parser.html?oncpan=1&distmat=1&version=0.04</a><br>





</div><div><br></div><div>Talvez o ambiente deles ja resolve esses problemas. Mas por perfeccionismo quero que o modulo instale sem problemas no CentOS padrao.</div><div><br>Abracos,<br>Samir</div><div><br></div><div><br>





</div></div>
<br></div></div>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><span><font color="#888888"><br></font></span></blockquote></div><span><font color="#888888"><br>

<br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div>

<div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div>




</div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>
</font></span></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div>