Como a correção de bugs funciona exatamente em uma distro? upstream vs downstream

5

Eu gostaria de saber como a correção de bugs funciona exatamente nas distribuições do Linux. Quero dizer, afinal de contas, uma distro é feita de software de código aberto feito por desenvolvedores externos e, em seguida, empacotada pelos mantenedores da distro. Então, por que toda distro tem seu próprio rastreador de bugs? Esses bugs não deveriam ser submetidos aos autores originais desses softwares?

    
por Luca D'Amico 22.06.2015 / 21:47

1 resposta

8

(Vou me referir a autores originais ou softwares originais como autores e software upstream porque é como eu estou acostumado a chamá-los.)

Do ponto de vista do usuário final, é bom ter um único lugar para relatar bugs, em vez de ter que se inscrever para contas em vários bugtrackers upstream para todos os softwares que eles usam.

Do ponto de vista do autor original, é bom estar protegido dos relatórios de erros dos usuários da distribuição, por alguns motivos:

  • os mantenedores da distribuição podem introduzir erros (ou erros podem ocorrer devido a interações entre os pacotes de uma distribuição), não deve ser responsabilidade do autor do upstream corrigi-los;
  • a distribuição pode ter requisitos que o autor do software upstream não se preocupa ou não pode manipular ( por exemplo, várias arquiteturas de hardware).

Observe que isso não significa que os bugs que estão no software upstream não sejam encaminhados; Se um usuário arquivar um bug em um rastreador de bug de distribuição, e o bug for de responsabilidade do desenvolvedor, então o bug será encaminhado para o rastreador de bug upstream. Mas geralmente o mantenedor da distribuição cuidará disso. Para bugs complexos, o usuário pode ser instruído a acompanhar upstream, para evitar um intermediário. Rastreadores de bugs de distribuição suportam isso muito bem, e irão atualizar o status de um bug automaticamente conforme ele é alterado no rastreador de bugs upstream.

Do ponto de vista do mantenedor de distribuição, é necessário ter um rastreador de bugs específico à distribuição para rastrear o trabalho a ser feito na própria distribuição (alterações na versão da biblioteca, novos toolchains, novas arquiteturas, novas ferramentas de distribuição ...).

Além disso, em muitos casos, as distribuições fornecem suporte para versões mais antigas de pacotes, em que os bugs ainda podem existir, embora já tenham sido corrigidos pelo autor upstream em versões mais recentes do software. Nessa situação, é um pouco irritante para os usuários pedirem aos autores de código para corrigir os bugs, já que eles já estão consertados na perspectiva do upstream; Se o bug é suficientemente chato, deve ser até os mantenedores da distribuição backport a correção. (Isso é debatível para correções de segurança em pacotes importantes; muitos upstream fornecem correções de segurança para versões mais antigas).

Um outro fator a ser levado em conta é que pode não haver mais um upstream para alguns softwares que ainda são importantes; este foi o caso por um longo tempo para cron por exemplo. Se as distribuições não tivessem seus próprios rastreadores de bugs, não haveria lugar para os usuários relatarem bugs em tais softwares.

Na maioria dos projetos tudo isso tende a acontecer de forma bastante natural, de forma amigável: os mantenedores de distribuição ajudam a corrigir erros, e vice-versa, e os mantenedores de distribuição compartilham correções de erros com outras distribuições.

    
por 22.06.2015 / 23:19