It is an error generated by patch
. If you would open the .patch
file, you'd see that it's organized in a bunch of segments, so-called "hunks". Every hunk identifies corresponding pieces of code (by line numbers) in the old and new version, the differences between those pieces of code, and similarities between them (the "context").
A hunk might fail if the similarities of a hunk don't match what's in the original file. When you see this error, it is almost always because you're using a patch for the wrong version of the code you're patching. There are a few ways to work around this:
- Get an updated version of
libdvdnav
that already includes the patch (best option). - Get a
.patch
file for the version oflibdvdnav
you're patching. - Patch manually. For every hunk in the patch, try to locate the corresponding file and lines in
libdvdnav
, and correct them according to the instructions in the patch. - Take the version of
libdvdnav
that's closer to whatever version the.patch
file was intended for (probably a bad idea).
|
Your patch is in unified format. You can ignore the part after the second @@ . Between the @@ s, there are two terms: the -l,s term indicates the offset (l is a line number) and size (s is a number of lines) of the hunk in the original file, while the +l,s indicates the offset and size in the file after patching. When there are multiple hunks, determining the +l,s part by hand can be quite a bit work. –
Rhymoid
Jan 11 '13 |
@@
symbols? – JellicleCat Jan 11 '13 at 17:15