found 497196 0.0.90 thanks On Sat, 30 Aug 2008 16:21:25 -0700 Junichi Uekawa wrote:
> I've uploaded a new version, please see if anything looks wrong. It seems you overgeneralized the fix. You discarded a pair of cases and lumped them with the case I proposed to change. Let's analyze all possible cases. Time increases from left to right. The various cases show if there are and where are the versions detected as fixed_max_below, found_max_below, fixed_min_above, and found_min_above. Legend: V version under consideration o version where the bug is found x version where the bug is fixed ? irrelevant data a) ----------------V------------------ buggy b) ----------------V------x----------- buggy c) ----------------V------o----------- non-buggy d) ----------------V------o----x------ non-buggy e) ----------------V------x----o------ buggy f) ----------o-----V--- ? -- ? -- ? -- buggy g) ----------x-----V--- ? -- ? -- ? -- non-buggy h) -----o----x-----V--- ? -- ? -- ? -- non-buggy i) -----x----o-----V--- ? -- ? -- ? -- buggy Please note that these are all the possible cases. I hope you agree with me on the above cases and on their respective results. Let's review the code of apt-listbugs/0.0.90: if fixed_max_below == nil && found_max_below == nil # this is a hard thing to handle, but do some guessing here [one of cases a,b,c,d,e] if found_min_above == nil # [one of cases a,b => buggy] puts " ... found is nil; I guess I am buggy" if $DEBUG val=true # [OK] else if fixed_min_above == nil # [case c => non-buggy] puts " ... fixed is nil; bug is not fixed later than this version, I guess I am buggy?" if $DEBUG val=true # [this should be val=false, as already reported] else if Debian::Dpkg.compare_versions(fixed_min_above, "gt", found_min_above) # [case d => non-buggy] puts " ... Bug is found later than this version, this version is nonbuggy" if $DEBUG val=false # [OK] else # [case e => buggy] puts " ... bug is fixed later than this version, this version is possibly buggy" if $DEBUG val=true # [OK] end end end else if fixed_max_below == nil # [case f => buggy] puts " ... found in prior version but not yet fixed" if $DEBUG val=true # [OK] else if found_max_below == nil || Debian::Dpkg.compare_versions(fixed_max_below, "gt", found_max_below) # this bugreport has recently been fixed # [case g, or case h => non-buggy] puts " ... this bugreport is not found in this version or fixed_max_below > found_max_below: assuming that this bug does not apply for this version" if $DEBUG val=false # [OK] else # [case i => buggy] # default path. [default is true: OK] end end end val end In apt-listbugs/0.0.91 you discarded the code which handles cases d and e, lumping them together with case c and setting val=false for all of them. This means that, whenever we are in case e, we set val to the wrong value (it gets false, while it should get true). Hence, I re-propose the simpler fix that I suggested in my initial message: just change case c (setting val=false) and leave the rest of logic.rb from apt-listbugs/0.0.90 untouched! -- http://frx.netsons.org/doc/index.html#nanodocs The nano-document series is here! ..................................................... Francesco Poli . GnuPG key fpr == C979 F34B 27CE 5CD8 DC12 31B5 78F4 279B DD6D FCF4
pgp0PIB3zptR3.pgp
Description: PGP signature