diff options
Diffstat (limited to 'bitbake-dev/lib/bb/utils.py')
| -rw-r--r-- | bitbake-dev/lib/bb/utils.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/bitbake-dev/lib/bb/utils.py b/bitbake-dev/lib/bb/utils.py index 603c926422..5b0aaba4a7 100644 --- a/bitbake-dev/lib/bb/utils.py +++ b/bitbake-dev/lib/bb/utils.py | |||
| @@ -21,8 +21,9 @@ BitBake Utility Functions | |||
| 21 | 21 | ||
| 22 | digits = "0123456789" | 22 | digits = "0123456789" |
| 23 | ascii_letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | 23 | ascii_letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" |
| 24 | separators = ".-" | ||
| 24 | 25 | ||
| 25 | import re, fcntl, os | 26 | import re, fcntl, os, types |
| 26 | 27 | ||
| 27 | def explode_version(s): | 28 | def explode_version(s): |
| 28 | r = [] | 29 | r = [] |
| @@ -39,12 +40,15 @@ def explode_version(s): | |||
| 39 | r.append(m.group(1)) | 40 | r.append(m.group(1)) |
| 40 | s = m.group(2) | 41 | s = m.group(2) |
| 41 | continue | 42 | continue |
| 43 | r.append(s[0]) | ||
| 42 | s = s[1:] | 44 | s = s[1:] |
| 43 | return r | 45 | return r |
| 44 | 46 | ||
| 45 | def vercmp_part(a, b): | 47 | def vercmp_part(a, b): |
| 46 | va = explode_version(a) | 48 | va = explode_version(a) |
| 47 | vb = explode_version(b) | 49 | vb = explode_version(b) |
| 50 | sa = False | ||
| 51 | sb = False | ||
| 48 | while True: | 52 | while True: |
| 49 | if va == []: | 53 | if va == []: |
| 50 | ca = None | 54 | ca = None |
| @@ -56,6 +60,16 @@ def vercmp_part(a, b): | |||
| 56 | cb = vb.pop(0) | 60 | cb = vb.pop(0) |
| 57 | if ca == None and cb == None: | 61 | if ca == None and cb == None: |
| 58 | return 0 | 62 | return 0 |
| 63 | |||
| 64 | if type(ca) is types.StringType: | ||
| 65 | sa = ca in separators | ||
| 66 | if type(cb) is types.StringType: | ||
| 67 | sb = cb in separators | ||
| 68 | if sa and not sb: | ||
| 69 | return -1 | ||
| 70 | if not sa and sb: | ||
| 71 | return 1 | ||
| 72 | |||
| 59 | if ca > cb: | 73 | if ca > cb: |
| 60 | return 1 | 74 | return 1 |
| 61 | if ca < cb: | 75 | if ca < cb: |
