Quando o sistema Personal Package Archive (PPA) saiu do beta em novembro de 2007, foi anunciado como uma virada de jogo para desenvolvedores de Software Livre dentro da comunidade Ubuntu e além.
O sistema PPA foi projetado para tornar mais fácil para os desenvolvedores obterem seus pacotes de software e disponível aos usuários para teste, acelerando assim o desenvolvimento do projeto e entregando maior qualidade Programas.
Depois de quase quatro anos de PPAs, pensei em descobrir se os objetivos originais do sistema PPA ainda eram o foco principal - ou os PPAs assumiram um papel totalmente novo, preenchendo uma lacuna que tradicionalmente tem sido um ponto sensível para Ubuntu?
Desde o início, a ideia do PPA era tornar mais fácil para os desenvolvedores colocar seu software em desenvolvimento nas mãos de testadores da comunidade para testes em escala mais ampla. Como Matt Zimmerman, Diretor Técnico do Ubuntu explicou na época:
“Um PPA permite que um desenvolvedor forme uma comunidade de testadores interessados em suas mudanças. A comunidade de teste pode instalar os pacotes, executá-los durante o período de teste e, em seguida, removê-los de forma limpa de seu sistema. ”
O empacotamento de software sempre foi uma tarefa difícil, exigindo uma certa habilidade tão pronunciada que define uma classe de colaboradores em si. Mesmo se você tivesse conseguido empacotar algum software para testes extras, havia o problema da distribuição. O processo de desembarque de software nos repositórios oficiais é demorado, burocrático e, uma vez que estamos lidar com código de qualidade de desenvolvimento, não algo que os principais repositórios do Ubuntu foram projetados para armazenar de qualquer forma.
O Ubuntu é fornecido com certas versões testadas de software para permitir uma experiência padrão e estável. Além de postar em blogs pessoais ou de projetos, antes da existência de PPAs, a única maneira de realizar testes eficientes em larga escala era anunciando novas atualizações por meio de listas de discussão ou IRC, quando os testadores da comunidade poderiam baixar pacotes .deb ou compilar software do fonte.
Os PPAs foram uma lufada de ar fresco - não apenas tornaram a embalagem mais simples, mas também prometeram uma distribuição mais fácil (e muito mais ampla) e, ao mesmo tempo, reduziram a barreira de entrada para os testadores. Qualquer pessoa poderia simplesmente adicionar um PPA à lista de fontes de software, buscar a chave GPG, executar uma atualização e, em seguida, o software estava disponível para instalação como qualquer outra coisa.
Com o passar dos anos, os PPAs tornaram-se cada vez mais fáceis para os usuários convencionais adicionarem a seus sistemas. Quando o Ubuntu 9.10 foi lançado no final de 2009, todo o gerenciamento do PPA podia ser realizado por meio de uma interface gráfica que até buscava a chave de segurança e mantinha o Terminal escondido fora de vista.
Uma das principais desvantagens do Ubuntu, por ser uma distribuição de lançamento não rolante, é que as atualizações de software pós-lançamento simplesmente não acontecem. Se uma nova versão do Firefox for lançada no meio de um ciclo do Ubuntu (como o Firefox 4 em março deste ano), não há maneira fácil para usuários possam colocar as mãos nesta atualização sem instalar manualmente um .deb, compilar a partir do código-fonte ou - adivinhou - adicionar um PPA.
Melhor ainda, quando chegar a hora da atualização, muitas atualizações de distribuição sofrem com pacotes corrompidos devido a grandes quantidades de PPAs e números de versão distintamente erráticos para aplicativos causados pela instalação manual dos PPAs. Uma das principais causas de atualizações interrompidas são as falhas no sistema de embalagem devido a combinações complicadas de não PPA e PPA instalados formulários.
Falei com Brian Thomason da Canonical, que mantém os repositórios Partner e For Purchase. Brian sugeriu que os PPAs são úteis para fornecer atualizações novas e estáveis, desde que sejam embalados corretamente.
“Em geral, as pessoas simplesmente jogam novas versões de coisas como o Firefox em um PPA, em vez de cuidar para que ele entre em conflito / substituição com o pacote no repositório principal. Se o Firefox 3 estiver no arquivo com o nome do pacote firefox e um mantenedor do PPA lançar o Firefox 4 sob o mesmo nome de pacote, firefox, sim, isso poderia potencialmente levar a problemas de atualização de distribuição mais tarde."
Recentemente, a equipe do Ubuntu tem procurado maneiras de entregar atualizações de software pós-lançamento para os principais aplicativos durante um lançamento vida útil, mas ainda há uma cultura muito ativa de abusadores do PPA - aqueles que usam o sistema PPA em seu benefício para distribuir os mais novos versões de software, em vez de usar o sistema PPA como foi originalmente planejado: testar versões de desenvolvimento de sua autoria projetos. Os PPAs tornaram-se Arquivos Públicos de Embalagem.
Banshee é o reprodutor de mídia padrão no Ubuntu e é um projeto mantido de forma muito ativa com muitos desenvolvedores e lançamentos regulares. Desde que o usuário não adicione o Banshee PPA, a versão do Banshee enviada com o Ubuntu 11.04 permanecerá a mesma ao longo do ciclo por seis meses até que o usuário atualize para o Ubuntu 11.10.
No caso de lançamentos de Long Term Support (LTS), a espera pode ser de até dois anos.
A maioria dos usuários que adicionaram o Banshee PPA não o fez porque estão testando ativamente Banshee e envio de relatórios de bug, mas porque eles querem o software mais recente em seu Ubuntu estável instalar. Isso sugere que o problema não é realmente com os PPAs, mas sim com a falta de atualizações estáveis de software pós-lançamento - um nicho que os PPAs inadvertidamente preencheram.
“Muitos desenvolvedores desejam modificar os pacotes existentes ou criar novos pacotes de seus softwares. O serviço PPA permite que qualquer pessoa publique um pacote sem ter que pedir permissão ou se juntar ao projeto Ubuntu como desenvolvedor. ” - Christian Reis, Gerente de Lançamento do Launchpad, 2007.
Um dos benefícios dos PPAs é que ninguém precisa "aprová-los". Eles não são confiáveis. Isso permite que os desenvolvedores disponibilizem rapidamente seu software para teste, minimizando quaisquer procedimentos de verificação, o que leva tempo. Isso significa que qualquer pessoa com uma conta do Launchpad pode criar um PPA malicioso e disfarçá-lo como algum outro software, talvez um fork de um aplicativo já popular.
Claro, quando um usuário adiciona um PPA, ele precisa inserir sua senha - um sinal de que o que está fazendo pode potencialmente prejudicar seu sistema, então você pode argumentar que é culpa dos usuários se instalarem algo que não foi verificado antecipadamente.
O problema com isso é que o prompt de senha no Ubuntu é um pouco semelhante à história do menino que gritou lobo. O Ubuntu pede sua senha de usuário em tantas ocasiões, para muitos, ela está embutida em seu uso diário e pensar duas vezes antes de inserir uma senha pode ser algo que os usuários não fazem.
Juntamente com o fato de que não há diferença perceptível entre instalar o software por meio de repositórios confiáveis, como o repositório principal, e depois instalar o software por meio de um PPA. Ambos exigem o mesmo prompt de senha - não há indicação de que um possa ser mais malicioso do que o outro, embora seja esse o caso.
Ultimamente, OMG! Ubuntu! foi criticado por postar instruções de instalação para PPAs que - devido à natureza do sistema de PPA - podem conter software mal-intencionado ou não testado. Claro, OMG! Ubuntu! verifica os PPAs antes de recomendá-los e, mesmo assim, cada conjunto de instruções de instalação do PPA é acompanhado de uma isenção de responsabilidade.
Pode OMG! Ubuntu! ser responsabilizado pelo que não é apenas uma situação hipotética (porque até agora, nenhum de nossos leitores se queixou de qualquer atividade maliciosa causado por um PPA que promovemos), mas também aquele em que o problema não está conosco, mas com a configuração de distribuição de software atual que o Ubuntu emprega?
Sites como o OMG! Ubuntu! existem para tornar a vida dos usuários mais fácil e, atualmente, a maneira mais fácil para os usuários obterem as atualizações estáveis mais recentes de seus aplicativos favoritos é por meio de um PPA. Se essa é ou não a maneira mais segura, não é nossa preocupação - os PPAs são um produto da Launchpad e da Canonical. Eles não foram criados por nós.
Talvez a Canonical devesse contratar uma pessoa em tempo integral para explicar aos meios de comunicação que defender os PPAs não é algo que eles deveriam estar fazendo - afinal, mesmo neste mês, um artigo no The Guardian mencionou como foi fácil adicionar terceiro software para o Ubuntu. O autor não mencionou nada sobre as implicações de segurança de fazer isso.
À medida que o Ubuntu cresce, a probabilidade de alguém criar um PPA pretendendo fornecer atualizações saudáveis e confiáveis, mas na verdade execute scripts maliciosos em vez disso é um ameaça cada vez maior, e ao invés de tentar policiar a mídia com o argumento "não instale PPAs, eles podem ser perigosos", seria melhor resolver o problema mais profundamente baixa.
Claramente, há uma demanda no Ubuntu para fácil instalação de atualizações de software mais recentes. As versões fornecidas nos canais oficiais podem frequentemente estar desatualizadas em até dois anos.
Os PPAs se tornaram uma solução conveniente para um problema que nunca foi abordado e estão servindo a um propósito para o qual nunca foram projetados. Como efeito colateral, a mídia está sendo responsabilizada por promovê-los devido à sua conveniência, porque simplesmente não há outra maneira fácil.
Tudo Ubuntu, diariamente. Desde 2009.