Por que as fontes do ubuntu são diferentes dos originais?

5

Quando faço:

wget ftp://ftp.openbsd.com/pub/OpenBSD/OpenSSH/portable/openssh-5.8p1.tar.gz
wget ftp://ftp.openbsd.com/pub/OpenBSD/OpenSSH/portable/openssh-5.8p1.tar.gz.asc
gpg openssh-5.8p1.tar.gz.asc 
tar -zxvf openssh-5.8p1.tar.gz
mv openssh-5.8p1 openssh-5.8p1_downloaded
apt-get source openssh-server
diff -r openssh-5.8p1 openssh-5.8p1_downloaded/ | wc -l

Eu recebo muitas diferenças (wc -l retorna 3000 linhas). Por que isso?

    
por Wojtek B. 02.02.2012 / 18:45

1 resposta

8

Os desenvolvedores do Ubuntu que gerenciam pacotes e importam aplicativos para repositórios do Ubuntu reservam-se o direito de modificar esses aplicativos. Eles podem fazê-lo, já que quase todos os softwares são licenciados gratuitamente. Eles não tentam cobri-lo, essas mudanças são visíveis para qualquer um. Na verdade, eles até mudam a versão do pacote para indicar que ele difere do lançamento original. O comando apt-get source que você executou fez o download do openssh-server na versão 5.8p1-7ubuntu1 . Observe o sufixo. (Você pode verificar a versão com qualquer gerenciador de pacotes). O esquema orig_version-XubuntuY é muito comum entre todos os pacotes. O número X indica o número de revisão na Debian , e Y significa o número de revisão no Ubuntu . Talvez você saiba, mas como uma nota para todos que podem ler esta resposta: A maioria dos pacotes do ubuntu são copiados dos repositórios do Debian - então se os desenvolvedores Debian lançaram a versão 5.8p1 sete vezes, liberando-a para os repositórios toda vez que eles tiverem incluiu suas mudanças, e, esta é a primeira vez que os desenvolvedores do Ubuntu o lançaram com suas mudanças, o número da versão resultante será 5.8p1-7ubuntu1.

Por que eles querem ou precisam incluir suas próprias alterações, se a versão upstream for boa o suficiente?

  • Os pacotes upstream são fornecidos para o público geral. No entanto, o Ubuntu, como qualquer outra distro, tem muitas mudanças específicas, por exemplo, um sistema de arquivos organizado pouco diferente. Neste caso, qualquer aplicativo que use essas partes da arquitetura do sistema, que são alteradas exclusivamente no Ubuntu, precisa se adaptar ao Ubuntu.
    • Um bom exemplo é que a maioria dos aplicativos é preparada para que eles possam trabalhar com o Apport - a ferramenta de detecção de falhas e relatório de erros, que é usada exclusivamente no Ubuntu.
  • Em muitos casos (embora não no caso do openssh-server), essas alterações são necessárias para garantir a integração correta da área de trabalho. Não são muitos os aplicativos que conhecem o Unity, já que não são comuns em outras distros. Isso significa que, se o aplicativo deve se integrar aos indicadores, Dash ou qualquer outra coisa, os desenvolvedores do Ubuntu precisam implementar esse recurso e liberar o aplicativo com suas alterações no repositório.
  • Todas as correções de bugs pós-lançamento são lançadas como uma mudança local (no Ubuntu) para a origem. Os aplicativos nunca são atualizados para uma versão mais recente do upstream em uma única versão do Ubuntu. Isso significa que se o seu Oneiric foi lançado com o openssh-server 5.8p1, ele não será atualizado para o 5.9p1 - você precisa aguardar o Precise ou obtê-lo você mesmo. No entanto, o Ubuntu fornece atualizações que corrigem bugs críticos e problemas de segurança. Essas correções devem ser aplicadas à versão que está na série Ubuntu apropriada - no seu caso, é Oneiric - e lançadas como alterações feitas na versão 5.8p1.
  • Às vezes, os requisitos de qualidade do desenvolvedor de aplicativos são inferiores aos do Ubuntu. De tempos em tempos, acontece que os desenvolvedores do Ubuntu corrigem um bug em um aplicativo antes de carregá-lo nos repositórios.
  • Acontece também que o número de revisão é aumentado sem nenhuma alteração ser introduzida. Esse é o caso quando um aplicativo precisa ser reconstruído devido a alterações significativas em (ou nova versão) de uma biblioteca da qual depende. Em seguida, o número de revisão é aumentado apenas para aumentar a versão do pacote.

Você pode obter mais informações sobre as alterações nesses dois locais:

Lá você pode encontrar o pacote em que está interessado, escolher a versão em que está interessado e até baixar o pacote de código-fonte debian para ler manualmente todos os arquivos .patch , que são fornecido pelos desenvolvedores do Ubuntu e aplicado à fonte original ao criar um pacote do Ubuntu.

Observe também que essas mudanças são sempre explicadas brevemente no (disponível nesses sites e usando a maioria dos gerenciadores de pacotes em seu computador - mas existe o link para o seu openssh-server - leia pelo menos para observe como o número da versão é alterado conforme as correções são incluídas).

Espero que você ache claro!

    
por Rafał Cieślak 02.02.2012 / 21:01