packaging: fix upgrade versioning for RPM and properly propagate version information
>>> import rpm
>>> # t1 and t2 are tuples of (version, release)
... def compare(t1, t2):
... v1, r1 = t1
... v2, r2 = t2
... return rpm.labelCompare(('1', v1, r1), ('1', v2, r2))
...
>>> compare(('5.3.50', '1'), ('5.3.50', '2'))
-1
>>> compare(('5.3.50', '1'), ('5.3.50', '1'))
0
>>> compare(('5.3.50', '1'), ('5.3.50', '0'))
1
>>> compare(('6.0', '1'), ('6.0.1', '1'))
-1
>>> compare(('6.0+2000', '1'), ('6.0.1', '1'))
1
>>> compare(('6.0.2000', '1'), ('6.0.1', '1'))
1
>>> compare(('6.0', '1.2000'), ('6.0.1', '1'))
-1
>>> compare(('6.0', '2.2000'), ('6.0.1', '1'))
-1