Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

segunda-feira, 27 de fevereiro de 2017

LEDE é o novo OpenWRT: lançado primeira versão estável!

O "grande tema" deste blog tem sido o OpenWRT. Entretanto, talvez isto tenha que mudar. Agora, o LEDE (Linux Embedded Development Environment) deve ocupar o seu lugar (rimou?). Evitei comentar o assunto LEDE até este momento pois ainda não estava sacramentado o destino dos projetos. Para quem não acompanhou todos os capítulos da novela, vou tentar resumir.

O OpenWRT já não era mais uma mocinha. Depois de vários anos de projeto, a estrutura continuava a mesma: um pequeno grupo superpoderoso "dono do nome, servidores, acesso de administração, poder de conceder escrita ao repositório, etc" e um grupo de desenvolvedores posteriores que formavam o grupo de desenvolvimento (core developers). Já há algum tempo, quem realmente fazia o OpenWRT eram os desenvolvedores que chegaram depois. Apesar desses novos desenvolvedores estarem no grupo core (terem acesso de escrita concedido pelos principais desenvolvedores), seu poder era limitado. Os desenvolvedores "originais" tinham o poder de veto sobre mudanças, direção do projeto, ferramenta de controle de versão, tudo sem regras claras, apenas baseado na sua convicção. Este autoritarismo pode funcionar bem em alguns projetos, como o Wine ou mesmo o Linux (o kernel), mas se mostrou desastroso para o OpenWRT.

Uma das brigas foi a adoção do git. Sim, existem outros sistemas de controle de versões e o XYZ é melhor... mas o git é uma mãe para desenvolvimento distribuído. Todos queriam, menos os "donos da bola", que mantinham o SVN. O acesso aos servidores também foi um problema sério. Diversos casos de indisponibilidade (inclusive até hoje em dia eles ocorrem) levavam um significativo tempo para serem sanados. Isto é péssimo para um projeto que também não aceitava espelhos parceiros. Boa parte das brigas não eram divulgadas pois ocorriam em uma lista fechada a apenas os desenvolvedores core. Não foi um evento específico mas o clima estava ficando péssimo. Apesar dos desenvolvedores "donos da bola" não fazerem mais uma contribuição quantitativamente significativa para o OpenWRT, eles ainda se apresentavam como a "cara" do projeto. E quem fazia o trabalho duro não gostava muito disso.

Agora entra a beleza do Software Livre! Nome (marca), servidores, domínios DNS tem dono. Código não. Os principais desenvolvedores (fora os "donos da bola") se juntaram e fizeram um "fork" em um outro projeto: LEDE Project. Em suma, é o código do OpenWRT com os desenvolvedores responsáveis, na época, por mais de 90% das contribuições do OpenWRT. A estrutura é muito mais aberta, comunicação bem mais transparente (primam por mídias abertas), o poder é distribuído e infraestrutura simplificada. O código sofreu rapidamente melhorias significativas, que antes eram vetadas. O git foi adotado, as formas de contribuição flexibilizadas (aceitam PR no Github ;-), que aumentou o envolvimento de novos desenvolvedores. Teve diversas mudanças mas o resultado é que deu uma revigorada no projeto.

E o OpenWRT? Se uma das críticas dos "rebeldes" era justamente a dificuldade de conceder acesso para novos desenvolvedores, como um projeto que perde mais de 90% do seu desenvolvimento atual poderia sobreviver? A lista openwrt-devel, antes vivida, parecia a lista da turma da faculdade de 15 anos atrás: rola uma mensagem por semana mas nada de útil. O desenvolvimento mingou ao insignificante, em ritmo de manutenção mínima. Os "donos da bola" ficaram com a bola mas sem time para jogar. Simplesmente não teriam como manter o projeto sozinhos (mas demoraram para entender).

Alguns meses depois da separação difícil, os dois grupos sentaram para conversar. Concordaram que seria benéfico unificar os projetos. O primeiro passo foi conceder acesso aos antigos desenvolvedores do OpenWRT ao código do LEDE (por votação, como ocorre com qualquer outro novo desenvolvedor). Como o LEDE estava muito mais avançado, seria usado como o fonte. Resta ainda hoje decidir alguns pontos como: qual seria o nome? Usar a wiki e fórum de quem? Redirecionar? Sincronizar? Essas coisas. O LEDE não está muito preocupado com isso pois o que o OpenWRT tem a oferecer a mais é o nome. Esse até mesmo perdeu seu sentido quando o OpenWRT passou a rodar em diversos dispositivos não rotadores wireless (Wireless RouTer), ao mesmo tempo que perdeu suporte no Linksys WRT56G. E qualquer mesclagem/alteração de nome é um esforço que poderia ser utilizado melhorando o produto.

De qualquer forma, o LEDE acaba de lançar a sua primeira versão estável: 2017.01.0! Acho que isto sacramenta o fim do projeto OpenWRT. Posso estar errado mas acho que logo a página do OpenWRT será apenas conteúdo histórico com um redirecionamento para o LEDE. Vamos ver...

Agora a parte importante: o que temos de bom? Em primeiro lugar, separaram os pacotes das imagens. Ainda existem pacotes específicos para um tipo de equipamento, em especial o kernel, mas não fazia sentido recompilar o mesmo pacotes quando as instruções de processador eram as mesmas. Então, ao baixar uma firmware nova em Downloads, vá em "targets" e não em "packages" (o resto é igual). Esta mudança não afeta o uso do opkg do ponto de vista do usuário.

Várias versões foram atualizadas, melhorado desempenho, latência, e outras mudanças evolutivas. Ah, e o Telnet que é muito usado no modo de emergência? Morreu: use SSH sempre, mesmo antes de definir a senha de root. Isto significa que teremos também o scp funcionando ;-)

O repositório de pacotes extra (https://github.com/openwrt/packages) continua ativado por padrão e, apesar do nome OpenWRT, o foco agora é LEDE.

Vou atualizar e relançar o post sobre atualização de versão do OpenWRTLEDE. Até este momento, todos os upgrades funcionaram sem problemas de tal forma que um observador desatento nem notaria a mudança. Sim, pode fazer o upgrade a partir do OpenWRT como se fosse uma atualização de versão do próprio OpenWRT.

Ah, um dos problemas com a versão nova são os roteadores mais humildes. O opkg pode ter problemas com roteadores com 32 MBytes de RAM ao instalar pacotes e aqueles com 4MB de armazenamento já vão chegar quase cheios. Então, talvez você não consiga instalar mais coisas no seu TL-WR740N. Eu tive que baixar os pacotes manualmente e desligar o Luci. Estão trabalhando para melhorar isso...

Até a próxima!