]> git.donarmstrong.com Git - cran2deb.git/commitdiff
depends: don't fail prematurely on unavailable packages
authorblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:22:51 +0000 (13:22 +0000)
committerblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:22:51 +0000 (13:22 +0000)
git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@94 edb9625f-4e0d-4859-8d74-9fd3b1da38cb

pkg/trunk/R/debiannaming.R
pkg/trunk/R/rdep.R

index ab5741bcaf08910739f88320d21f26ff2e061e5f..2af857b1385903e740ce915b692b781af4a8c859 100644 (file)
@@ -30,14 +30,17 @@ pkgname_as_debian <- function(name,repopref=NULL,version=NULL,binary=T,build=F)
         #      now.
         if (!(name %in% rownames(available))) {
             bundle <- r_bundle_of(name)
-            if (is.na(bundle)) {
-                fail('package',name,'is not available')
+            if (!is.na(bundle)) {
+                name <- bundle
             }
-            name <- bundle
         }
         debname = tolower(name)
         if (binary) {
-            repopref <- tolower(repourl_as_debian(available[name,'Repository']))
+            if (name %in% rownames(available)) {
+                repopref <- tolower(repourl_as_debian(available[name,'Repository']))
+            } else if (is.null(repopref)) {
+                repopref <- 'unknown'
+            }
             debname = paste('r',repopref,debname,sep='-')
         }
     }
index c29f62cd7746f87244b94b82b2f387f787a79993..87ef16814e96f47782f03856c0734e9e1c7440ca 100644 (file)
@@ -19,13 +19,12 @@ r_requiring <- function(names) {
     for (name in names) {
         if (!(name %in% base_pkgs) && !(name %in% rownames(available))) {
             bundle <- r_bundle_of(name)
-            if (is.na(bundle)) {
-                fail('package',name,'is not available')
+            if (!is.na(bundle)) {
+                name = bundle
+                names <- c(names,bundle)
             }
-            name = bundle
-            names <- c(names,bundle)
         }
-        if (!is.na(available[name,'Contains'])) {
+        if (name %in% rownames(available) && !is.na(available[name,'Contains'])) {
             names <- c(names,r_bundle_contains(name))
         }
     }
@@ -69,10 +68,12 @@ r_dependencies_of <- function(name=NULL,description=NULL) {
     if (is.null(description)) {
         if (!(name %in% rownames(available))) {
             bundle <- r_bundle_of(name)
-            if (is.na(bundle)) {
-                fail('package',name,'is not available')
+            if (!is.na(bundle)) {
+                name <- bundle
+            } else {
+                # unavailable packages don't depend upon anything
+                return(data.frame())
             }
-            name <- bundle
         }
         description <- data.frame()
         # keep only the interesting fields