패치 적용시 "흐림"이란 무엇입니까?

패치 적용시 "흐림"이란 무엇입니까?

데비안 패키징에 퀼트 패치를 적용하면 오류가 발생합니다:

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

구글링을 해보니 이 오류는 패치를 적용할 때 "퍼징(fuzzing)"으로 인해 발생한다는 것을 알게 되었습니다. 이제 내 질문은 무엇이 다운되었으며 퀼트 패치 적용 문제를 어떻게 해결합니까?

나는 읽었다이 기사안내된 단계를 따랐지만 여전히 문제가 있습니다.

답변1

이는 반드시 흐려짐으로 인한 것은 아닙니다(특히 설명된 대로 패치를 새로 고친 경우).기사). 소스 코드가 변경되어 패치가 완전히 쓸모 없게 될 수도 있습니다. 예를 들어 원본 소스는 다음과 같습니다.

aa
bb
cc

그리고 다음을 알려주는 패치: 행을 교체합니다 bb( dd일부 컨텍스트로, 여기서는 무시됨). 그런 다음 소스 코드는 다음과 같이 변경됩니다.

aa
bbb
cc

패치에는 여전히 다음 bb으로 대체 라인이 표시되어 있지만 dd해당 라인이 bb더 이상 존재하지 않으므로 패치를 더 이상 성공적으로 적용할 수 없습니다.

해결 방법은 이전 소스의 해당 부분(패치가 적용될 수 있는 부분)에서 실패한 블록을 살펴보고 새 소스에서 변경된 사항을 확인한 다음 새 소스를 조정하여 패치를 다시 생성해 보는 것입니다. 이는 수동으로만 수행할 수 있으며 소스 코드에 중요한 변경이 있는 경우 불가능하지는 않더라도 어려울 수 있습니다.

관련 정보