- m = re_split.match(line[:-1])
- package = m.group(1)
- maintainer = fix_maintainer(m.group(2))
- if not packages.has_key(package):
- packages[package] = { "maintainer": maintainer, "priority": 0 }
- file.close()
-
+ line = string.strip(utils.re_comments.sub('', line[:-1]))
+ if line == "":
+ continue;
+ split = string.split(line);
+ lhs = split[0];
+ maintainer = fix_maintainer(string.join(split[1:]));
+ if string.find(lhs,'~') != -1:
+ lhs_split = string.split(lhs, '~');
+ package = lhs_split[0];
+ version = lhs_split[1];
+ else:
+ package = lhs;
+ version = '*';
+ # A version of '*' overwhelms all real version numbers
+ if not packages.has_key(package) or version == '*' \
+ or apt_pkg.VersionCompare(packages[package]["version"], version) == -1:
+ packages[package] = { "maintainer": maintainer, "version": version };
+ file.close();
+