+needs_build <- function(name,version) {
+ # see if the last build was successful
+ build <- db_latest_build(name)
+ if (!is.null(build) && build$success) {
+ # then something must have changed for us to attempt this
+ # build
+ if (db_latest_build_version(name) == version &&
+ build$db_version == db_get_version()) {
+ return(F)
+ }
+ } else {
+ # always rebuild on failure or no record
+ return(T)
+ }
+ # see if it has already been built
+ srcname <- pkgname_as_debian(name,binary=F)
+ debname <- pkgname_as_debian(name,binary=T)
+ if (file.exists(changesfile(srcname, version))) {
+ notice('already built',srcname,'version',version)
+ return(F)
+ }
+ # XXX: what about building newer versions of Debian packages?
+ if (debname %in% debian_pkgs) {
+ notice(srcname,' exists in Debian (perhaps a different version)')
+ return(F)
+ }
+
+ rm(debname,srcname)
+ return(T)
+}
+