Revista Do Linux
EDIÇÃO DO MÊS
 CD do Mês
 Jogos
 Kernel

 Entrevista
 Capa
 Tutorial
 Debian
 Programação
 Portáteis
 Segurança

 

Linux em estado puro
Nesta segunda parte, destacamos os aspectos sociais e até políticos envolvidos na manutenção de um projeto tão grandioso como o Debian, que conta com mais de quinhentos voluntários espalhados ao redor do mundo e nas formas utilizadas para as tomadas de decisão no projeto.

Os desenvolvedores do Debian

Aos voluntários que se dedicam ao trabalho de criar, integrar, testar e dar suporte ao sistema Debian GNU/Linux damos o nome de developer, desenvolvedor. Um desenvolvedor identifica pacotes de software livre interessantes para a comunidade de usuários; ele é responsável por transformá-los em um pacote .deb segundo as características e normas de qualidade estabelecidas pelos documentos de "política", e zelar pela segurança e pela corre&c edil;ão de bugs em seus pacotes.

O trabalho de um desenvolvedor vai depender basicamente de suas aptidões, interesses e de seu tempo disponível para o projeto. Existem várias áreas de interesse na criação do que pretende ser "o sistema operacional universal"; os desenvolvedores tendem a se organizar em times internos para atacar problemas específicos de forma coordenada. Podemos destacar os seguintes times e páginas internas:

  • O projeto de documentação Debian (Debian Documentation Project) ou DDP
  • A "força tarefa" X (The X Strike Force)
  • A área experimental APT (The APT Experimental Area)
  • O Grupo de Controle de Qualidade (The Quality Assurance Group)
  • Imagens de CD Debian GNU/Linux (Debian GNU/Linux CD images)
  • O programa de patrocínio (The sponsorship program)
  • A página de coordenação de assinatura de chaves digitais (The key signing coordination page)
  • O projeto Debian IPv6 (The Debian IPv6 Project)
  • O projeto Debian Jr. (The Debian Jr. Project)
  • A distribuição experimental de testes (The experimental testing distribution).

Para se tornar um desenvolvedor do Debian você precisa passar por um período de avaliação que serve para garantir que novos membros tenham a capacidade técnica para os desafios encontrados pelo grupo. As provas são bastante elaboradas e não dizem respeito apenas aos assuntos específicos do Debian, mas também a habilidades de programação, ao conhecimento das licenças de software livre disponíveis e à experiência com sistemas baseados em GNU/Linux em geral. Não é uma tarefa simples se tornar um desenvolvedor, requer dedicação e co hecimento.

As políticas

Existem políticas para pacotes em geral e específicas, normatizando, por exemplo, os programas que fazem uso da interface gráfica (The X Window System), programas servidores, programas que precisam ser agendados periodicamente no sistema e assim por diante. Conforme a relevância e a necessidade são criadas políticas de empacotamento para novas categorias de programas.

O contrato social

O Debian tem um contrato social, uma lista de comprometimentos feitos e assumidos pelo projeto e seus componentes perante a sociedade.

A constituição

Um dos aspectos mais interessantes do projeto, que motivou a escolha do título desta matéria, é que, dadas as devidas proporções, existem semelhanças entre o funcionamento do projeto Debian e algumas democracias. Por exemplo, o Debian tem o que chamamos de "Constituição". A constituição é o conjunto de regras que os desenvolvedores instituíram para organizar o funcionamento da estrutura administrativa do Debi n. A constituição define cargos, funções, durações de mandato e a maneira como a escolha dos desenvolvedores responsáveis por esses cargos é feita, bem como orienta a resolução de impasses em assuntos estratégicos para o projeto, e principalmente os poderes que podem ser exercidos pelos indivíduos dentro do projeto e a maneira como eles serão exercidos.

A hierarquia no Debian

O projeto Debian é amparado pela Software in The Public Interest, uma organização sem fins lucrativos responsável por cuidar dos recursos do Debian, do hardware doado para o projeto, das doações em dinheiro e também por ser representante legal do grupo.

Entre os diversos cargos definidos em nossa constituição temos o cargo de "Líder do Projeto" (ou "Project Leader"). O líder do projeto é escolhido pelos desenvolvedores por meio de eleição e o mandato tem duração de um ano. As funções do líder do projeto são a do voto de minerva em impasses, a de tomar decisões urgentes que se façam necessárias, a de decidir em quest&otil e;es que ninguém mais tenha responsabilidade, apontar o secretário do projeto e o líder do comitê técnico e liderar as discussões internas do projeto, entre outras.

O comitê técnico deve ser sempre constituído por quatro a oito desenvolvedores e sua função é decidir sobre qualquer política técnica, sobre os aspectos técnicos em que a jurisdição dos desenvolvedores se sobrepuser, tomar decisões quando solicitado por eles, ou mesmo impor uma linha de conduta técnica a um desenvolvedor (este poder necessita de maioria de três para um em votação).

O secretário, apontado pelo atual líder de projeto e pelo secretário que o antecede, é responsável por conduzir as votações, e pode falar pelo líder do projeto, juntamente com o líder do comitê técnico; ele também pode resolver questões que surjam quanto à interpretação da constituição.

O processo democrático

Todas as decisões do projeto que não possam ser tomadas por um desenvolvedor específico, ou que venham a afetar o projeto Debian como um todo, ou emendas ao contrato social ou à constituição, devem ser objeto de votação.

O voto é facultativo, e geralmente feito por e-mail, preenchendo um texto padrão para aquela votação (chamado de cédula), assinado digitalmente com uma chave pessoal reconhecida pelo projeto Debian (desta maneira um desenvolvedor do Debian é identificado, e apenas eles têm direito de voto). É responsabilidade do secretário do projeto conduzir as votações e contabilizá-las. Emendas à constituição, por exemplo, requerem maioria de três para um para serem aprovadas.

A contagem dos votos não é feita pela contabilização simples de cada opção. As opções de "candidatos" são votadas em ordem de preferência.

Assim um "candidato" que aparece mais vezes tendo preferência sobre um segundo candidato é declarado vencedor sobre aquele. Cada candidato é avaliado contra todos os outros relativamente à ordem de escolha, garantindo assim a escolha, que reflete realmente as preferências do grupo como um todo. Este esquema, é claro, tem a desvantagem de que a computação dos resultados requer um número fatorial de comparações no número de "candidatos", mas na prática não temos em geral mais do que três ou quatro opções distintas em uma votação, e para o caso de apenas duas opções este esquema cai no caso trivial da contagem simples. Lembrando que "candidato" pode ser uma emenda na constituição, uma decisão sobre os rumos do projeto ou a indicação para o cargo de líder do projeto. Nesses casos estratégicos as decisões devem refletir da maneira mais precisa possível a opinião do grupo.

Curiosidades

Um ponto interessante do gráfico é o freeze do atual sistema potato que durou de janeiro a agosto de 2000. Note que o número de pacotes permaneceu constante e até diminui um pouco até o release. No momento do release, o gráfico começou a levar em conta a nova distribuição "unstable", que já contava com mais pacotes, por isso o "dente" no gráfico.

Gráfico

Os nomes dos releases são nomes de personagens do filme Toy Story. Bruce Perens, um dos ex-líderes do projeto Debian era contratado da empresa Pixar que produziu filmes como Toy Story e Vida de Inseto. E foi de lá que veio a inspiração para os nomes dos releases. O atual release é o "potato" (o senhor Cabeça de Batata do filme) e o próximo release será chamado "woody" em homenagem ao boneco caubói.

A distribuição potato recentemente lançada foi dedicada ao desenvolvedor Joel "Espy" Klecker, que durante todo período de sua contribuição para o projeto sofreu de uma síndrome de distrofia muscular que acabou por vencê-lo. Joel Klecker era um membro muito ativo e competente do grupo, estimado por todos. O primeiro release da distribuição Debian GNU/Linux potato recebeu seu nome, em honra de sua memória.


Para saber mais

Projeto Debian GNU/Linux: www.debian.org
Debian em diferentes arquiteturas: www.debian.org/ports/
Updates de segurança do Debian: www.debian.org/security
Corel Linux OS: linux.corel.com/
Storm Linux OS: www.stormix.com/
Debian Developer’s Corner: www.debian.org/devel
O guia para novos mantenedores: www.debian.org/doc/maint-guide/
O Contrato Social do Debian: www.debian.org/social_contract
A constituição do Debian: www.debian.org/devel/constitution
Software in The Public Interest: www.spi-inc.org
Os ocupantes dos cargos do Debian: www.debian.org/devel/people
Informações sobre votações no Debian: www.debian.org/vote/
Informações sobre suporte: www.debian.org/support
Listas de discussão Debian: www.debian.org/MailingLists
O sistema de controle de bugs: bugs.debian.org
Projeto DDP-BR: debian-br.sourceforge.net
Dedicatória a Joel "Espy" Klecker: ftp://ftp.debian.org/debian/doc/dedication-2.2.txt


Contrato Social perante a comunidade de Software Livre

1) O Debian permanecerá 100% Software Livre - Nós prometemos manter a distribuição Debian GNU/Linux constituída integralmente de software livre. Como há muitas definições de software livre, incluímos abaixo as linhas gerais para a identificação de software livre. Iremos apoiar nossos usuários que desenvolvem e executam software não-livre baseados no/para o Debian, mas nunca faremos o sistema depender de um item de software que não seja livre.

2) Vamos retribuir a comunidade de Software Livre - Quando escrevermos novos componentes do sistema Debian, nós os licenciaremos como software livre. Iremos fazer o melhor sistema que pudermos, de modo que o software livre seja amplamente distribuído e usado. Iremos realimentar os autores originais de componentes usados por nosso sistema com correções de bugs, aperfeiçoamentos, pedidos de usuários, etc.

3) Nós não esconderemos problemas - Iremos manter nosso banco de dados de avisos de problemas (bugs) abertos para a visualização pública todo o tempo. Avisos que usuários façam online serão visíveis imediatamente para todos os outros.

4) Nossas prioridades são nossos usuários e o software livre - Seremos guiados pelas necessidades de nossos usuários e a comunidade de software livre, colocando seus interesses em primeiro lugar em nossas prioridades. Apoiaremos as necessidades de nossos usuários para operação em muitos tipos diferentes de ambiente computacional. Não iremos fazer objeção a software proprietário que deva rodar em sistemas Debian, e permitiremos criação de distribuições com valor adicionado contendo tanto Debian como software comercial, sendo que não cobraremos nenhuma taxa. Para apoiar esses objetivos forneceremos um sistema operacional de alta qualidade, 100% software livre, sem restrições legais que possam impedir esses tipos de uso.

5) Programas que não atendem nossos padrões de software livre - Reconhecemos que alguns de nossos usuários precisam usar programas que não atendem as Linhas Guia de Software Livre do Debian. Criamos as áreas "contrib" e "non-free" em nossos repositórios de FTP para esse software. O software contido nesses diretórios não é parte do Debian, embora eles estejam configurados para uso com o sistema Debian. Encorajamos fabricantes de CD a ler as licenças de pacotes de software nesses diretórios e determinar se eles podem ser distribuídos em seus CDs. Desta forma, embora o software não-livre não seja parte do Debian, apoiamos seus usuários e fornecemos infra-estrutura (como nosso sistema de controle de bugs e listas de discussão) para usuários de software não-livre.


As diretrizes de Software Livre do Debian (DFSG)

A Debian Free Software Guidelines é um conjunto de regras criado pelos Debian developers para tornar possível classificar o que é software livre ou não, conseqüentemente, o que pode fazer parte da distribuição principal ou não. Essas linhas gerais foram adotadas por várias empresas que desejavam criar uma licença que fosse livre, como foi o caso da Netscape, por exemplo, e por movimentos simpatizantes do software livre, como o movimento "Open Source" e sua "definição de fonte aberta" (Open Source Definition), no entanto, encorajamos o uso do termo "software livre" sempre que o software se enquadre nos termos da Debian Free Software Guidelines, pois o termo "Open Source" não reflete os objetivos de liberdade almejados pelo movimento do Software Livre, embora usemos praticamente as mesmas definições.

1) Redistribuição livre - A licença de um componente Debian não pode restringir nenhuma parte interessada em vendê-lo, ou distribuir o software como parte de uma distribuição agregada de software contendo programas de diversas fontes diferentes. A licença não pode exigir um royalty ou outra taxa por essa venda.

2) Código fonte - O programa deve incluir código fonte e deve permitir a distribuição em código fonte, bem como em formato compilado.

3) Trabalhos derivados - A licença deve permitir modificações e trabalhos derivados, e deve permitir que estes sejam distribuídos sob a mesma licença que o trabalho original.

4) Integridade do código fonte do autor - A licença pode restringir o código fonte de ser distribuído de forma modificada somente se a licença permitir a distribuição de "patch files" com o código fonte, com o propósito de modificar o programa em tempo de compilação. A licença deve permitir explicitamente a distribuição de software compilado a partir do código fonte modificado. A licença pode exigir que trabalhos derivados tenham um nome ou número de versão diferente do software original (este é um meio-termo. O Grupo Debian encoraja todos os autores a não restringir a modificação de nenhum arquivo, fonte ou binário).

5) Não à discriminação a pessoas ou grupos - A licença não pode discriminar nenhuma pessoa ou grupo de pessoas.

6) Não à discriminação a fins de utilização - A licença não pode restringir ninguém de fazer uso do programa para um fim específico. Por exemplo, ela não pode restringir o programa de ser usado no comércio, ou de ser usado para pesquisa genética.

7) Distribuição de licença - Os direitos atribuídos ao programa devem se aplicar a todos aqueles para quem o programa é redistribuído, sem a necessidade de execução de uma licença adicional por aquelas pessoas.

8) A licença não pode ser específica para o Debian - Os direitos atribuídos ao programa não podem depender de o programa ser parte de um sistema Debian. Se o programa for extraído do Debian e usado ou distribuído sem o Debian, dentro dos termos da licença do programa, os mesmos direitos garantidos em conjunto ao sistema Debian deverão ser garantidos àqueles que o utilizam.

9) A licença não deve contaminar outros softwares - A licença não poderá impor restrições a outro software que seja distribuído juntamente com o software licenciado. Por exemplo, a licença não pode insistir que todos os outros programas distribuídos na mesma mídia sejam software livre.

10) Licenças exemplo - As licenças "GPL", "BSD" e "Artistic" são exemplos de licenças que consideramos "livres". Bruce Perens escreveu o primeiro rascunho deste documento e o aprimorou usando os comentários dos desenvolvedores do Debian durante uma conferência por e-mail de um mês de duração em junho de 1997. Ele em seguida removeu as referências específicas do Debian para criar "A definição de Fonte Aberta (open source)". Outras organizações podem derivar deste documento ou adicionar contribuições a ele. Por favor, dê crédito ao projeto Debian se você assim fizer.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux