-version_new <- function(rver, debian_revision=1, debian_epoch=db_get_base_epoch(), verbose=FALSE) {
+version_new <- function(rver, pkgname, debian_revision=1, debian_epoch=db_get_base_epoch(), verbose=FALSE) {
if (verbose) {cat("rver:",rver," debian_revision:",debian_revision," debian_epoch:",debian_epoch,"\n")}
# generate a string representation of the Debian version of an
# R version of a package
pkgver = rver
if (verbose) {cat("rver:",rver," debian_revision:",debian_revision," debian_epoch:",debian_epoch,"\n")}
# generate a string representation of the Debian version of an
# R version of a package
pkgver = rver
# ``Writing R extensions'' says that the version consists of at least two
# non-negative integers, separated by . or -
if (!length(grep('^([0-9]+[.-])+[0-9]+$',rver))) {
# ``Writing R extensions'' says that the version consists of at least two
# non-negative integers, separated by . or -
if (!length(grep('^([0-9]+[.-])+[0-9]+$',rver))) {
pkgver = paste(debian_epoch,':',pkgver,sep='')
# always add the '-1' Debian release; nothing is lost and rarely will R
pkgver = paste(debian_epoch,':',pkgver,sep='')
# always add the '-1' Debian release; nothing is lost and rarely will R
- return(as.integer(sub(paste('.*-([0-9]+',version_suffix,')?([0-9]+)$',sep=''),'\\2',pkgver)))
+ return(as.integer(sub(paste('.*-([0-9]+',gsub('\\+','\\\\+',version_suffix),')?([0-9]+)$',sep=''),'\\2',pkgver)))
-version_update <- function(rver, prev_pkgver, prev_success, verbose=TRUE) {
+version_update <- function(rver, prev_pkgver, prev_success, pkgname, verbose=TRUE) {
if (verbose) cat("version_update:"," rver:",rver," prev_pkgver:",prev_pkgver," prev_success:",prev_success,"\n")
# return the next debian package version
prev_rver <- version_upstream(prev_pkgver)
if (verbose) cat("version_update:"," rver:",rver," prev_pkgver:",prev_pkgver," prev_success:",prev_success,"\n")
# return the next debian package version
prev_rver <- version_upstream(prev_pkgver)
,debian_revision = version_revision(prev_pkgver)+inc
,debian_epoch = version_epoch(prev_pkgver)
))
,debian_revision = version_revision(prev_pkgver)+inc
,debian_epoch = version_epoch(prev_pkgver)
))
# new release
# TODO: implement Debian ordering over version and then autoincrement
# Debian epoch when upstream version does not increment.
# new release
# TODO: implement Debian ordering over version and then autoincrement
# Debian epoch when upstream version does not increment.
latest_r_ver <- available[pkgname,'Version']
if (verbose) {cat("latest_r_ver: '",latest_r_ver,"'\n",sep="")}
if (!is.null(db_ver)) {
latest_r_ver <- available[pkgname,'Version']
if (verbose) {cat("latest_r_ver: '",latest_r_ver,"'\n",sep="")}
if (!is.null(db_ver)) {
- return(version_update(latest_r_ver, db_ver, db_succ))
+ return(version_update(latest_r_ver, db_ver, db_succ,pkgname=pkgname))