SliTaz GNU/Linux official and community documentation wiki.
.png
Translations of this page:

Orientações para desenvolvedores

O SliTaz é uma distribuição de código aberto mantida pela comunidade. Todos são convidados a se juntar a nós e a contribuir: usuários, hackers e desenvolvedores sempre podem fazer algo, isto é, revisar ou escrever documentação, informar bugs ou enviar patches pela lista de discussão, usando o wok e criando novos pacotes ou simplesmente ajudando os outros na lista de discussão ou no fórum. O SliTaz possui seus repositórios Mercurial hospedados num sistema rodando SliTaz, desenvolvedores podem requisitar um novo repositório se necessário e colaboradores têm acesso de escrita para corrigir erros, scripts, etc.

Há um website dedicado exclusivamente à participação de artistas interessados em contribuir com o projeto - http://community.slitaz.org/image. Mediante a criação de uma conta de usuário, pode-se postar gráficos ou figuras relacionadas ao SliTaz. O website é mantindo por uma comunidade de voluntários e se houver interesse em nos ajudar a gerenciá-lo, entre em contato via email ou pela lista de discussão.

KISS e respeito aos padrões

“Keep it Simple”, ou seja, tentamos manter as coisas simples: respeito aos padrões, planejamento cuidadoso e documentação escrita de alta qualidade, fornecimento de um sistema robusto e estável e um sistema de arquivos (rootfs) no LiveCD leve o suficiente para ser executado em máquinas que tenham ao menos 128 mb de memória RAM. Também usamos aplicativos baseados em GTK+2, Dialog, scripts SHell ou PHP. A idéia é não nos repetirmos e deixar o sistema básico leve e pequeno.

Tank - Build host & home

Cada participante do projeto pode obter uma conta no servidor do projeto com acesso seguro, espaço em disco, um diretório público e acesso a todas as ferramentas de desenvolvimento. Os desenvolvendores podem compilar pacotes e os mantenedores dos mirrors podem gerenciar as sincronizações. O Tank também hospeda o website, o boot via web e os repositórios mercurial.

Veja as instruções para a utilização deste servidor descritas no “Livro de Receitas” (cookbook).

Repositórios Mercurial

Os repositórios Mercurial ou Hg do SliTaz podem ser listados ou clonados por qualquer um na URL: http://hg.slitaz.org/. Pessoas com acesso de escrita podem acessar diretamente pelo endereço repos.slitaz.org que necessita de autenticação. O Mercurial usa Python e é instalável com o comando:

tazpkg get-install mercurial

~/.hgrc

Antes de sua primeira transferência no servidor, assegure-se de que possui o arquivo de configuração do Hg correto com seu nome e endereço de e-mail e lembre-se de checar que você não está acessando como usuário root. Exemplo de arquivo ~/.hgrc:

[ui]
username = FirstName LastName <you@example.org>

Clonar, modificar, transferir e finalizar

Você deve possuir acesso de escrita aos repositórios para utilizar o comando hg.

  • Clonar (clone) um repositório, exemplo para o wok:
$ hg clone http://repos.slitaz.org/wok
  • Para marcar todos os logs ou somente o último log:
$ hg log
$ hg head
  • Modifique um ou mais arquivos e transfira (commit):
$ hg add
$ hg status
$ hg commit -m "Log message..."
$ hg log

Você pode usar o comando rollback para desfazer a última transação.

  • Antes de finalizar (push) as mudanças no servidor é seguro executar o comando pull ao menos uma vez:
$ hg pull
$ hg push

Está feito, suas mudanças, código ou correções estão agora no servidor

Atualização de um repositório local

Para baixar as últimas atualizações de um repositório remoto para um repositório local, execute:

$ hg pull
$ hg update

Comandos Úteis

Comandos do mercurial (hg) que podem ser usados.

  • hg help : Mostra uma lista completa dos comandos.
  • hg rollback : Desfaz a última ação (commit, pull, push).
  • hg log <pacote> : Mostra o log de um pacote.
  • hg head : Mostra o último log.

Implementação da função iconv()

O SliTaz utiliza a função iconv() fornecida pela biblioteca glibc do projeto GNU - alguns pacotes que necessitam da função libiconv devem usar a versão fornecida pela glibc (glibc-locale). Note que já não há mais um pacote libiconv (1.2 MB) no SliTaz.

Pacotes Tazpkg

Os pacotes tazpkg no SliTaz são automaticamente criados via Tazwok e receitas no wok. O Livro de Receitas descreve o uso das ferramentas e o formato dos arquivos receipt. É necessário que estes dois textos sejam lidos antes de prosseguirmos.

Em termos de escolha de pacote, a idéia é oferecer o pacote por tarefa ou funcionalidade, isto é, a mais leve aplicação em seu campo e sem duplicações. Note que a atual seleção de pacotes não é imutável, se você souber de uma alternativa mais leve, com mais funcionalidades ou mais sexy por apenas alguns KB a mais, sugira na lista de discussão. Atenção redobrada é prestada aos pacotes do LiveCD: eles devem ser “limpos”, removendo-se dependências desnecessárias e opções do compilador. Em geral os pacotes candidatos a fazer parte do LiveCD são discutidos na lista.

Antes de você começar a compilar e a criar pacotes para o SliTaz, certifique-se que o trabalho ainda não existe na relação do wok disponível no mirror principal do SliTaz (wok e wok-undigest). Não se esqueça que os membros da lista podem te ajudar e que a documentação do wok e ferramentas existem para te guiar nos primeiros passos.

Nomes de Pacotes

Na maioria dos casos o nome do pacote é o mesmo do código fonte, exceto para os módulos das linguagens Python, Perl, PHP, Ruby e Lua. Por exemplo, o pacote que fornece o sistema de templates Kid, escrito em Python e XML, é nomeado: python-kid.

Gerenciamento do website e manuais

O website e os manuais (Manual do SliTaz, Livro de Receitas) são gerenciados pelo repositório mercurial, podendo ser clonados da seguinte maneira:

$ hg clone http://hg.slitaz.org/website

Ou, se você tiver as permissões necessárias:

$ hg clone http://repos.slitaz.org/website

Estilo para codificação de xHTML

  • As páginas nos diferentes manuais são codificadas em xHTML 1.0 transitional.
  • As cores para o corpo da página (body) e para os títulos são definidas diretamente de forma a permitir que os links sejam facilmente identificáveis.
  • Os títulos de primeiro nível são usados apenas uma vez, no topo da página, os de segundo nível são usados para nomear as seções e os de terceiro e quarto nível para as subseções.
  • Se uma lista é usada para os tópicos, usando âncoras para as diferentes seções, é posta logo no início da página, após o título da mesma.
  • Parágrafos são colocados dentro das tags <p></p>.
  • Para indentação, usa-se tabulações (tabs), de forma a manter-se a semântica e para diminuir espaço em termos de octetos (bytes).
  • Para mostrar trechos de código, como o nome de um comando dentro de um parágrafo, <code> é o método recomendado.
  • Para mostrar a saida de comandos ou comandos a serem digitados em um terminal, usa-se <pre>. Exemplo:
$ comando
  • Para mostrar texto que pode ser copiado e colado, como scripts, peças de código, arquivos de configuração, etc, também se usa a tag <pre>, em conjunto com a classe CSS chamada “script”. Exemplo:
<pre class="script">

code...

</pre>
  • Texto enfatizado é colocado dentro da tag <em> e links internos são relativos.
  • É recomendável checar a validade do código xHTML por meio do validador online da W3C.

Diff e patch

Os utilitários diff e patch são ferramentas de linha de comando para criação e implementação de diferenças entre dois arquivos. Esta técnica é freqüentemente usada para colaboração e as mudanças feitas no arquivo original podem ser extraídas facilmente. Para criar um arquivo diff legível aos humanos em um simples editor de textos, você deve fornecer a opção -u :

$ diff -u file.orig file.new > file.diff

Para aplicar um patch:

$ patch file.orig file.diff