O que é “fuzz” na aplicação de patches?

4

Eu estava aplicando um patch com quilt no pacote Debian que ocorreu um erro:

Applying patch debian/patches/fixshare.patch
patching file net/slirp.c
Hunk #1 FAILED at 529.
1 out of 1 hunk FAILED -- rejects in file net/slirp.c

Eu pesquisei no Google e compreendi que esse erro é causado por "Fuzz" na aplicação de patches. Agora, minha pergunta é o que é fuzz e como posso resolver meu problema ao aplicar patches de quilt?

Eu li este artigo e fiz os passos que ele disse, mas ainda tenho problemas!

    
por Fatemeh Abdollahei 29.11.2014 / 12:54

1 resposta

5

Isso não é necessariamente devido à fuzz (em particular, se você atualizou as correções conforme informado no artigo ). Pode acontecer que a fonte tenha mudado de tal forma que os patches estejam completamente desatualizados. Por exemplo, a fonte original era:

aa
bb
cc

e um patch informado: substitua a linha bb por dd (com algum contexto, ignorado aqui). Então a fonte mudou para:

aa
bbb
cc

O patch ainda diz: substitua a linha bb por dd , mas a linha bb não existe mais, para que o patch não possa mais ser aplicado com sucesso.

A solução é olhar para o pedaço defeituoso, na parte correspondente da fonte antiga (na qual o patch pode ser aplicado), e tentar ver o que mudou na nova fonte, então tentar adaptar a nova fonte para regenerar o patch. Isso só pode ser feito manualmente, e quando houver grandes mudanças na fonte, isso pode ser difícil, se não impossível.

    
por 29.11.2014 / 23:29

Tags