summaryrefslogtreecommitdiffstats
path: root/meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch')
-rw-r--r--meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch b/meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch
new file mode 100644
index 0000000000..00ee391405
--- /dev/null
+++ b/meta/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch
@@ -0,0 +1,51 @@
1Only in ipkg-utils: ipkg-py-sane-vercompare.patch
2diff -ur ipkg-utils.org/ipkg.py ipkg-utils/ipkg.py
3--- ipkg-utils.org/ipkg.py 2005-01-08 18:08:52.000000000 +0000
4+++ ipkg-utils/ipkg.py 2007-04-04 11:52:46.000000000 +0000
5@@ -48,9 +48,9 @@
6 self.epoch = epoch
7 self.version = version
8
9- def _versioncompare(self, ref):
10- selfversion = self.version
11- refversion = ref.version
12+ def _versioncompare(self, selfversion, refversion):
13+ if not selfversion: selfversion = ""
14+ if not refversion: refversion = ""
15 while 1:
16 ## first look for non-numeric version component
17 selfm = re.match('([^0-9]*)(.*)', selfversion)
18@@ -89,7 +89,18 @@
19 elif (self.epoch < ref.epoch):
20 return -1
21 else:
22- return self._versioncompare(ref)
23+ self_ver_comps = re.match(r"(.+?)(-r.+)?$", self.version)
24+ ref_ver_comps = re.match(r"(.+?)(-r.+)?$", ref.version)
25+ #print (self_ver_comps.group(1), self_ver_comps.group(2))
26+ #print (ref_ver_comps.group(1), ref_ver_comps.group(2))
27+ r = self._versioncompare(self_ver_comps.group(1), ref_ver_comps.group(1))
28+ if r == 0:
29+ r = self._versioncompare(self_ver_comps.group(2), ref_ver_comps.group(2))
30+ #print "compare: %s vs %s = %d" % (self, ref, r)
31+ return r
32+
33+ def __str__(self):
34+ return str(self.epoch) + ":" + self.version
35
36 def parse_version(versionstr):
37 epoch = 0
38@@ -445,6 +456,13 @@
39 return self.packages[key]
40
41 if __name__ == "__main__":
42+
43+ assert Version(0, "1.2.2-r1").compare(Version(0, "1.2.3-r0")) == -1
44+ assert Version(0, "1.2.2-r0").compare(Version(0, "1.2.2+cvs20070308-r0")) == -1
45+ assert Version(0, "1.2.2+cvs20070308").compare(Version(0, "1.2.2-r0")) == 1
46+ assert Version(0, "1.2.2-r0").compare(Version(0, "1.2.2-r0")) == 0
47+ assert Version(0, "1.2.2-r5").compare(Version(0, "1.2.2-r0")) == 1
48+
49 package = Package()
50
51 package.set_package("FooBar")