Idiomas: Brazilian Portuguese | English
Pessoal, estamos finalizando a estruturação dos overlays do projeto Gentoo-BR, após a fusão com o antigo grupo. e estamos finalmente abrindo os overlays para contribuições.
Atualmente os overlays disponiveis são:
Os overlays são identificados pelos identificadores acima, e receberemos contribuições para todos através da mailing-list:
gentoo-br-overlay@googlegroups.com
É necessário que você se cadastre na mailing-list para poder enviar patches.
Obviamente só serão aceitos pacotes de softwares com licenças livres, quaisquer que sejam as licenças, e de pacotes que ainda não estejam disponíveis na árvore do Portage.
Caso deseje disponibilizar um pacote encontrado na bugzilla do Gentoo Linux (http://bugs.gentoo.org/), comente no bug a respeito da inclusão, informe ao autor do ebuild e agradeça ao autor na mensagem de commit e no Changelog.
Todos os ebuilds devem conter apenas KEYWORDS instaveis, como ~x86 ~amd64, etc.
Criem seus ebuilds e testem em overlays locais. Em breve publicarei um tutorial sobre isso também.
Para trabalhar com os overlays do Gentoo-BR você precisará do Git (dev-util/git), e de outras duas ferramentas: o echangelog (disponivel no pacote app-portage/gentoolkit-dev) e o repoman (distribuido com o Portage).
Listarei abaixo os comandos necessários para configuração da sua maquina para trabalhar com os repositórios, criar patches e nos envia-los por email (para a mailing-list).
Os seguintes comandos irão configurar o seu nome e email, para constarem nos patches, mensagens nos repositórios e Changelog's.
$ git config --global user.name "Seu nome completo" $ git config --global user.email "seu.email@dominio.com" $ echo 'export ECHANGELOG_USER="Nome <email@dominio.com>"' >> ~/.bashrc $ source ~/.bashrc
Para o penúltimo comando, simplesmente adicione a variável de ambiente ECHANGELOG_USER, com seu nome e email para o arquivo de inicialização de seu shell favorito. Caso use o comando acima, nao se esqueça de utilizar 2 setas >>, ou o antigo conteudo de seu arquivo será perdido.
Demonstrarei a configuração para envio direto de patches via email, utilizando o SMTP do Gmail (ou Google Apps). Caso deseje utilizar um servidor de SMTP local ou usar algum outro, procure as instruções de configuração na internet. :)
$ git config --global sendemail.from "Nome <seu.email@dominio.com>" $ git config --global sendemail.cc "seu.email@dominio.com" $ git config --global sendemail.confirm "always" $ git config --global sendemail.smtpserver "smtp.gmail.com" $ git config --global sendemail.smtppass "sua_senha" $ git config --global sendemail.smtpserverport "587" $ git config --global sendemail.smtpencryption "tls" $ git config --global sendemail.smtpuser "seu.email@dominio.com"
Você precisará de uma cópia local do repositório Git para adicionar seu pacote e gerar o patch que será enviado para nós.
$ git clone git://gitorious.org/gentoo-br/nome-do-overlay.git
Agora vamos setar o destinatário padrão para os patches deste overlay:
$ cd nome-do-overlay/ $ git config sendemail.to "gentoo-br-overlay+nome-do-overlay@googlegroups.com"
Note o "+nome-do-overlay" no último comando. Este é o identificador que usaremos para saber com qual overlay você está contribuindo. Este identificador presente no endereço de email não afeta em nada o envio do mesmo.
Após este passo, você já possui uma cópia apropriada para trabalhar, no diretório nome-do-overlay, dentro do diretório em que você rodou o comando anterior.
Este passo só será executado na primeira vez que você for contribuir com cada um dos overlays do projeto, seja o principal ou os pessoais.
Inicialmente, atualize o seu repositório local. Para isso, entre no diretório dele e execute:
$ git pull
Crie um novo branch para trabalhar (branch working, por exemplo).
$ git checkout -b working
Crie o diretório da sua categoria (caso seja necessário), e entre nele.
$ mkdir categoria $ cd categoria/
Crie o diretório do seu pacote (caso seja necessário). e entre nele.
$ mkdir pacote $ cd pacote
Copie seu ebuild para este diretorio. É importante que vocẽ tenha testardo o seu ebuild em um overlay local para ter certeza que tudo está funcionando corretamente e seu patch não seja rejeitado.
$ cp /caminho/para/pacote-1.0.ebuild .
Agora crie o arquivo metadata.xml, que contém informações sobre o herd responsável pelo pacote, o mantenedor, uma descrição longa e as use flags locais do pacote. Os pacotes gentoo-syntax contém templates de arquivos como ebuilds, metadata.xml, entre outros. É interessante instalar o pacote referente ao seu editor. No meu caso, utilizo o Vim, e tenho instalado o app-vim/gentoo-syntax.
$ vim metadata.xml
No campo herd insira o valor "no-herd". No campo long-description adicione uma descrição mais completa que a do ebuild. Se seu pacote possuir USE flags locais, adicione um campo use, no seguinte formato:
<use>
<flag name="flag1">What flag1 do</flag>
<flag name="flag2">What flag2 do</flag>
</use>
Seu arquivo deverá ficar parecido com este:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>no-herd</herd>
<maintainer>
<email>your-mail@domain.com</email>
<name>Your Name</name>
</maintainer>
<longdescription lang="en">
Some long description.
</longdescription>
<use>
<flag name="flag1">What flag1 do</flag>
<flag name="flag2">What flag2 do</flag>
</use>
</pkgmetadata>
Se seu pacote precisa de patches, copie-os para o diretório files, dentro do diretório atual.
$ cp /caminho/para/patches/* files/
Adicione os arquivos ao repositório git.
$ git add .
Agora que já possuimos todos os arquivos no repositório, podemos criar o Changelog.
$ echangelog "Added package categoria/pacote-1.0"
A mensagem deve ser curta, explicativa e em inglês.
Agora, rode o seguinte comando, para criar o arquivo Manifest, e procurar por erros triviais.
$ repoman fix
Cheque os itens com o aviso em vermelho, e corrija-os, se possível. Em caso de dúvidas, entre em contato. Consulte também o help e a manpage do repoman.
Agora, faremos uma checagem mais profunda, utilizando o profile developer e procurando por erros mais sérios.
$ repoman -d full
Resolva os erros (em vermelho) e rode novamente. Quando não tiver mais erro, ou restarem apenas warnings triviais, como o aviso de que todas as arquiteturas estão com mask, rode o seguinte comando:
$ repoman commit -m "Added package categoria/pacote-1.0"
Seja claro na mensagem de commit, pois este será o assunto do email enviado com o patch para a mailing-list.
Se você não corrigiu os erros, o repoman vai se recusar a commitar as mudanças.
ATENÇÃO: Jamais commite mudanças sem utilizar o repoman!
Após isto, seu pacote está pronto!
Para criar o patch, volte para o branch master e atualize o repositório novamente, pois algum outro pacote pode ter sido inserido no repositório durante seu desenvolvimento.:
$ cd ../../ $ git checkout master $ git pull
Volte para o branch working.
$ git checkout working $ git rebase master
Seu repositório está pronto para gerar patches a partir do inicio de seu trabalho no branch working.
Para enviar o email com o patch é muito simples.
$ git send-email master
O Git lhe dará algumas instruções e pedirá confirmação. Se tudo correr bem, em pouco tempo seu patch estará em nossa mailing-list, e você receberá uma cópia em seu email.
Caso o seu patch seja em resposta a algum email (por exemplo: você mandou um patch, que foi rejeitado, e você precisou re-enviar), você precisa indicar a qual email está respondendo. Para isto, abra o email original (opção "Mostrar original" do Gmail) e veja a linha:
Message-Id: ...
Copie tudo que estiver a direita dos :, este é o id do email. E então envie o email com o seguinte comando:
$ git send-email master --in-reply-to=id_do_email
Caso algo dê errado com o envio via Git, rode o seguinte comando, e nos envie o patch para a mailing-list manualmente, em anexo.
$ git format-patch master
Este comando criará um arquivo .patch no seu diretório atual. Envie anexado para a lista e remova, para não afetar o repositório.
Agora você pode deletar seu branch working.
$ git checkout master $ git branch -D working
Sua contribuição foi enviada e será analisada por algum dos desenvolvedores do projeto. Acompanhe o desenrolar da thread na mailing-list.
Caso seu patch não seja aceito, continue o desenvolvimento no seu overlay local e refaça os passos para a criação do patch.
Da próxima vez não precisará repetir as configurações. Apenas será necessário reconfigurar algo se for contribuir com outro overlay do projeto. :)
Eu e os outros desenvolvedores agradecemos a colaboração de todos!
Publicado em: 27/12/2009 01h57min
- Modificado em: 28/12/2009 17h54min
Tags:
Gentoo, Git
Comentários
-
Permalink
-
Código fonte
© Rafael G. Martins | Design by: Matthew James Taylor | Movido a: hgrest-blog