[opensuse-packaging] rpm fuzz
Hi, No one knows what the fuzz was all about, so we set it to 0. OK, I guess I can't leave it as this :) rpm so far applied patches with a pretty heavy "fuzz factor", which means patch tried to be clever and ignore "small" differences to the code you was patching. As patch is - well - patch, this can go wrong. rpm 4.7.1 changed the default not to rely on patch being clever and set the fuzz to 0, but we reverted that for 11.2 as it was a bit too much failure for a little time. But now I reverted the revert and rpm is back to 0 - and I also submitted 170 packages to their devel projects (gently causing the "My Projects" link to timeout - so Pavol was so nice to split out "My Requests" :). The packages I submitted where those where I could automate the refresh, there will be plenty of failures left - so be warned. Greetings, Stephan -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tuesday 10 November 2009 02:11:51 pm Stephan Kulow wrote:
No one knows what the fuzz was all about, so we set it to 0.
I assume this was just meant to be funny, but just in case there is any seriousness in it: fuzz defines how many lines of leading and trailing context may be ignore when trying to apply a hunk in a context or unified patch. Fuzz N means ignore N lines of leading and N lines of trailing context, hence 2*N lines. The default for diff is to generate patches with three context lines, and the default fuzz value for patch is 2. Andreas -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
On Tuesday 10 November 2009 02:11:51 pm Stephan Kulow wrote:
No one knows what the fuzz was all about, so we set it to 0.
I assume this was just meant to be funny, but just in case there is any seriousness in it: fuzz defines how many lines of leading and trailing context may be ignore when trying to apply a hunk in a context or unified patch. Fuzz N means ignore N lines of leading and N lines of trailing context, hence 2*N lines. The default for diff is to generate patches with three context lines, and the default fuzz value for patch is 2.
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers. I'm not in the position to estimate the *failure* rate of wrongly applied patches because of fuzz, but I guess, it's going to train my abilities to manually adjust patches once again, or probably, if in doubt, resort to sed -i. Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On 11/10/2009 at 21:13, "Hans-Peter Jansen"
wrote: On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote: On Tuesday 10 November 2009 02:11:51 pm Stephan Kulow wrote: No one knows what the fuzz was all about, so we set it to 0. I assume this was just meant to be funny, but just in case there is any seriousness in it: fuzz defines how many lines of leading and trailing context may be ignore when trying to apply a hunk in a context or unified patch. Fuzz N means ignore N lines of leading and N lines of trailing context, hence 2*N lines. The default for diff is to generate patches with three context lines, and the default fuzz value for patch is 2.
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers.
I tend to disagree on the 'lazy' packagers. Most fuzz on the patches appears over time: you have version x.y of any package where you needed to create a patch. This one obviously applies cleanly. But then you have to update to version x.y+1, which of course had modifications. Often, the patch still applies and in this case you're most likely not checking if the patch makes sense or not. Sometimes it applies with fuzz which can be a good indication that the area you're patching did actually change... and your patch might break loose everything that's there. i think having fuzz=0 just makes it clearer that a patch needs to be rebased as the original file you're patching was modified upstream. After all, a patch should fix an upstream issue, not break it (on the other hand of course there are packages with a HUGE amount of patches, for whatever reason, and they might end up becoming a huge pain.) @Stephan: I guess we'll see on your Factory Status page which packages fail due to fuzz shortly, as you always took good care of having somewhat descriptive messages there (kudos on that. I guess that's quite some work). Dominique -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hans-Peter Jansen schrieb:
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers. And here comes the the question: And how do I create a correct patch ? I used to do "diff -ruN dir-orig dir"
Is that OK ? Chris -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On 11/11/2009 10:29 AM, Christian wrote:
Hans-Peter Jansen schrieb:
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers.
And here comes the the question: And how do I create a correct patch ? I used to do "diff -ruN dir-orig dir"
Is that OK ?
Chris
I'm relatively new to packaging and use quilt (http://nordisch.org/2009/3/20/quilt-a-really-quick-howto) and I get perfect patches every time. Regards Dave P -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Wednesday 11 November 2009, 09:29:30 Christian wrote:
Hans-Peter Jansen schrieb:
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers.
And here comes the the question: And how do I create a correct patch ? I used to do "diff -ruN dir-orig dir"
Is that OK ?
Sure, the problem only occurs, if the files had changes *after* the patch was created. patch is tolerant about those changes to a certain degree (see man patch, option -F), while rpm by policy doesn't inherit this tolerance anymore. Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Wed, 11 Nov 2009 09:29:30 +0100, you wrote:
And how do I create a correct patch ? I used to do "diff -ruN dir-orig dir"
I'd strongly recommend quilt for package handling. For a short description of the necessary steps see http://nordisch.org. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Wed, Nov 11, 2009 at 09:29:30AM +0100, Christian wrote:
Hans-Peter Jansen schrieb:
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers. And here comes the the question: And how do I create a correct patch ? I used to do "diff -ruN dir-orig dir"
Is that OK ?
Quilt is very convenient, if your %prep phase is simple enough you can simply use quilt setup package.spec cd package-ver while quilt push; do quilt refresh; done and voila, you have refreshed patches with fuzz 0. Alternatively, you might find rediff of diffutils interesting, in this case as well as in any other time if you're into editing diff files manually. ;-) -- Petr "Pasky" Baudis A lot of people have my books on their bookshelves. That's the problem, they need to read them. -- Don Knuth -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Sunday 15 November 2009, 00:34:36 Petr Baudis wrote:
Quilt is very convenient, if your %prep phase is simple enough you can simply use
quilt setup package.spec cd package-ver while quilt push; do quilt refresh; done
and voila, you have refreshed patches with fuzz 0.
That sounds cool.
Alternatively, you might find rediff of diffutils interesting, in this case as well as in any other time if you're into editing diff files manually. ;-)
Ahh, thanks for bringing this to my attention, but note, that it's contained in patchutils.
-- Petr "Pasky" Baudis A lot of people have my books on their bookshelves. That's the problem, they need to read them. -- Don Knuth
Did you read Knuth? -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Dienstag 10 November 2009 schrieb Hans-Peter Jansen:
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers.
I count 233 current failures because of this - a lot of them have already accepted my changes into their devel project but didn't push it yet ;( Greetings, Stephan -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tue, 10 Nov 2009, Hans-Peter Jansen wrote:
On Tuesday 10 November 2009, 15:19:33 Andreas Gruenbacher wrote:
On Tuesday 10 November 2009 02:11:51 pm Stephan Kulow wrote:
No one knows what the fuzz was all about, so we set it to 0.
I assume this was just meant to be funny, but just in case there is any seriousness in it: fuzz defines how many lines of leading and trailing context may be ignore when trying to apply a hunk in a context or unified patch. Fuzz N means ignore N lines of leading and N lines of trailing context, hence 2*N lines. The default for diff is to generate patches with three context lines, and the default fuzz value for patch is 2.
Well, I guess, Stephan knows very well, what the fuzz is about: it's about hundreds of patches, which will have to be regenerated, done as an employment-creation measure for this lazy gang of packagers.
I'm not in the position to estimate the *failure* rate of wrongly applied patches because of fuzz, but I guess, it's going to train my abilities to manually adjust patches once again, or probably, if in doubt, resort to sed -i.
Happened to GCC at some point in time and caused miscompiles on s390.
Not nice. Thus I really like that new default even if it causes
some initial extra work.
Richard.
--
Richard Guenther
On Saturday 14 November 2009, 23:40:09 Richard Guenther wrote:
On Tue, 10 Nov 2009, Hans-Peter Jansen wrote:
I'm not in the position to estimate the *failure* rate of wrongly applied patches because of fuzz, but I guess, it's going to train my abilities to manually adjust patches once again, or probably, if in doubt, resort to sed -i.
Happened to GCC at some point in time and caused miscompiles on s390. Not nice. Thus I really like that new default even if it causes some initial extra work.
I admit, that if it happens and slips through unnoticed, it's getting a major hassle to resolve (but using a heavily patched compiler suite isn't the real McCoy either, is it?) ;-). Pete -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (9)
-
Andreas Gruenbacher
-
Christian
-
Dave Plater
-
Dominique Leuenberger
-
Hans-Peter Jansen
-
Petr Baudis
-
Philipp Thomas
-
Richard Guenther
-
Stephan Kulow