packages_must.append(package)
continue
+ # If package was altered since last build
+ if package.last_change >= package.last_build:
+ packages_must.append(package)
+ continue
+
if package.buildable:
packages_may.append(package)
packages += packages_must
+ packages_may = sorted(packages_may, key=lambda p: p.last_build)
+
while len(packages) < 10 and packages_may:
- package = random.choice(packages_may)
- packages_may.remove(package)
+ package = packages_may.pop(0)
packages.append(package)
- random.shuffle(packages)
-
# Bad hack because we lack a _build method
args.packages = [p.name for p in packages]
args.onlydeps = False
@property
def fingerprint(self):
- return "%d" % os.stat(self.filename).st_mtime
+ return "%d" % self.last_change
@property
def group(self):
def id(self):
return "%s-%s-%s" % (self.name, self.version, self.release)
+ @property
+ def last_build(self):
+ file = os.path.join(PACKAGESDIR, self.package_files[0])
+ if not os.path.exists(file):
+ return 0
+
+ return os.stat(file).st_mtime
+
+ @property
+ def last_change(self):
+ return os.stat(self.filename).st_mtime
+
@property
def license(self):
return self._data.get("PKG_LICENSE")