[Yum-devel] [PATCH 2/5] Remove unnecessary "magic number" test

Panu Matilainen pmatilai at laiskiainen.org
Thu Feb 24 17:29:20 UTC 2011


On 02/24/2011 07:00 PM, seth vidal wrote:
> On Thu, 2011-02-24 at 18:20 +0200, Panu Matilainen wrote:
>> On 02/24/2011 06:06 PM, seth vidal wrote:
>>> On Thu, 2011-02-24 at 11:18 +0200, Panu Matilainen wrote:
>>>> RPMCALLBACK_TRANS_START is only issued once. That "bytes" happens
>>>> to be a magic value of 6 is just an artifact of truly ancient rpm
>>>> versions from last century issuing RPMCALLBACK_TRANS_START more than once.
>>>> ---
>>>>    yum/rpmtrans.py |    9 ++++-----
>>>>    1 files changed, 4 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
>>>> index 06b484a..30c9dd3 100644
>>>> --- a/yum/rpmtrans.py
>>>> +++ b/yum/rpmtrans.py
>>>> @@ -402,11 +402,10 @@ class RPMTransaction:
>>>>
>>>>
>>>>        def _transStart(self, bytes, total, h):
>>>> -        if bytes == 6:
>>>> -            self.total_actions = total
>>>> -            if self.test: return
>>>> -            self.trans_running = True
>>>> -            self.ts_all() # write out what transaction will do
>>>> +        self.total_actions = total
>>>> +        if self.test: return
>>>> +        self.trans_running = True
>>>> +        self.ts_all() # write out what transaction will do
>>>>
>>>>        def _transProgress(self, bytes, total, h):
>>>>            pass
>>>
>>>
>>> Obviously not THAT ancient, it was added around about rhel 5.0/5.1 era.
>>>
>>> What version of rpm are we talking about here?
>>
>>    From what I searched rpm git archive, the multiple calls to
>> RPMCALLBACK_TRANS_START were eliminated in late nineties, so that'd be
>> rpm 3.x or thereabouts. Certainly rpm 4.4.x only ever calls it once. I
>> know the test appeared in yum in 2007 with the introduction of
>> rpmtrans.py, but I just wonder where the heck did it come from :)
>
> I have a memory of running into it in rhel4.

I just fail to see how that could happen (staring at RHEL 4 rpm version 
right now). There's precisely one place which issues 
RPMCALLBACK_TRANS_START and it's not in a loop or other construct that 
/could/ get called multiple times. I double-checked git history and the 
last place where it would get called with different values of "bytes" 
got axed in 1999.

The point here is that RPMCALLBACK_TRANS_START getting called with a 
"magic" value of 6 in bytes is just a silly artifact from ancient times 
which has no meaning whatsoever within rpm or otherwise, and 
unnecessarily checking for it prevents ever changing it to anything else 
that might more sense (not that I have any immediate plans or reason to 
change it).

	- Panu -


More information about the Yum-devel mailing list