Michał Górny avatar Michał Górny committed d34c9cf

Fix package sorting in portage.

Comments (0)

Files changed (1)

gentoopm/portagepm/pkg.py

 		if not isinstance(other, PortageDBCPV):
 			raise TypeError('Unable to compare %s against %s' % \
 					(self, other))
-		return self.key < other.key or self.version < other.version
+
+		if self.key < other.key:
+			return True
+		if self.key == other.key:
+			return self.version < other.version
+		return False
 
 class PortageCPV(PortageDBCPV, PMInstallablePackage):
 	def __init__(self, cpv, dbapi, tree, repo_prio):
 		if not isinstance(other, PortageCPV):
 			raise TypeError('Unable to compare %s against %s' % \
 					(self, other))
-		return self.key < other.key or self.version < other.version \
-				or self._repo_prio < other._repo_prio
+
+		if self.key < other.key:
+			return True
+		if self.key == other.key:
+			if self.version < other.version:
+				return True
+			if self.version == other.version:
+				return self._repo_prio < other._repo_prio
+		return False
 
 class PortageVDBCPV(PortageDBCPV, PMInstalledPackage):
 	@property
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.