Merge pull request #6566 from aavogt/master

let generate-cran-packages.R complete without needing to download the whole CRAN
This commit is contained in:
Peter Simons 2015-03-04 11:08:00 +01:00
commit 6af6b8baae
3 changed files with 183 additions and 136 deletions

File diff suppressed because it is too large Load Diff

View File

@ -663,7 +663,6 @@ let
"ArrayBin" # requires SAGx
"babel" # requires edgeR
"BACA" # requires RDAVIDWebService
"bamboo" # depends on broken jvmr
"BcDiag" # requires fabia
"bdvis" # requres taxize
"beadarrayFilter" # requires beadarray
@ -761,7 +760,6 @@ let
"isva" # requires qvalue
"jomo" # linking errors
"js" # requires broken V8
"jvmr" # tries to download files during its build
"KANT" # requires affy, and Biobase
"ktspair" # requires Biobase
"latticeDensity" # requires spatstat
@ -909,7 +907,6 @@ let
"spocc" # requires leafletR
"SQDA" # requires limma
"Statomica" # requires Biobase, multtest
"StochKit2R" # tarball is invalid on server
"stpp" # requires spatstat
"structSSI" # requires multtest
"strum" # requires Rgraphviz

View File

@ -3,7 +3,12 @@ library(parallel)
cl <- makeCluster(10)
options(repos=structure(c(CRAN="http://cran.rstudio.com/")))
readFormatted <- as.data.table(read.table(skip=6, sep='"', text=head(readLines('cran-packages.nix'), -1)))
nixPrefetch <- function(name, version) {
prevV <- readFormatted$V2 == name & readFormatted$V4 == version
if (sum(prevV) == 1) as.character(readFormatted$V6[ prevV ]) else
system(paste0("nix-prefetch-url --type sha256 http://cran.rstudio.com/src/contrib/", name, "_", version, ".tar.gz"), intern=TRUE)
# system(paste0("nix-hash --flat --base32 --type sha256 /nix/store/*", name, "_", version, ".tar.gz", "| head -n 1"), intern=TRUE)
}
@ -21,7 +26,7 @@ formatPackage <- function(name, version, sha256, depends, imports, linkingTo, kn
paste0(attr, " = derive { name=\"", name, "\"; version=\"", version, "\"; sha256=\"", sha256, "\"; depends=[", depends, "]; };")
}
clusterExport(cl, c("nixPrefetch"))
clusterExport(cl, c("nixPrefetch","readFormatted"))
pkgs <- as.data.table(available.packages(filters=c("R_version", "OS_type", "CRAN", "duplicates")))
pkgs <- subset(pkgs, Repository=="http://cran.rstudio.com/src/contrib")