From cba40064eef115e4aec5b1d089963d402a6b0965 Mon Sep 17 00:00:00 2001 From: blundellc Date: Tue, 16 Sep 2008 14:25:15 +0000 Subject: [PATCH] Merge branch/multisys into trunk. git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@165 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- trunk/R/db.R | 11 ++++++++--- trunk/R/debianpkg.R | 5 +++-- trunk/R/zzz.R | 18 ++++++++++++------ trunk/data/populate_depend_aliases | 19 ++++++++++++++++--- trunk/data/populate_forcedep | 12 +++++++++++- trunk/data/populate_sysreq | 17 +++++++++++++++++ trunk/data/pull | 5 +++++ trunk/exec/autobuild | 2 +- trunk/exec/build | 2 +- trunk/exec/latest_log | 2 +- trunk/exec/update | 9 +++++---- trunk/exec/update_cache | 1 + trunk/exec/which_system | 7 +++++++ trunk/inst/doc/INSTALL_NOTES | 6 ++++++ trunk/inst/doc/README | 6 ++++-- 15 files changed, 98 insertions(+), 24 deletions(-) create mode 100755 trunk/data/pull create mode 100755 trunk/exec/which_system diff --git a/trunk/R/db.R b/trunk/R/db.R index 5c9836d..82fa1d4 100644 --- a/trunk/R/db.R +++ b/trunk/R/db.R @@ -53,16 +53,17 @@ db_start <- function() { if (!dbExistsTable(con,'builds')) { dbGetQuery(con,paste('CREATE TABLE builds (' ,' id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL' + ,',system TEXT NOT NULL' ,',package TEXT NOT NULL' ,',r_version TEXT NOT NULL' ,',deb_epoch INTEGER NOT NULL' ,',deb_revision INTEGER NOT NULL' ,',db_version INTEGER NOT NULL' ,',date_stamp TEXT NOT NULL' - ,',git_revision TEXT NOT NULL' # legacy: really scm_revision + ,',scm_revision TEXT NOT NULL' ,',success INTEGER NOT NULL' ,',log TEXT' - ,',UNIQUE(package,r_version,deb_epoch,deb_revision,db_version)' + ,',UNIQUE(package,system,r_version,deb_epoch,deb_revision,db_version)' ,')')) } return(con) @@ -286,9 +287,10 @@ db_update_package_versions <- function() { db_record_build <- function(package, deb_version, log, success=F) { con <- db_start() dbGetQuery(con,paste('INSERT OR REPLACE INTO builds' - ,'(package,r_version,deb_epoch,deb_revision,db_version,success,date_stamp,git_revision,log)' + ,'(package,system,r_version,deb_epoch,deb_revision,db_version,success,date_stamp,scm_revision,log)' ,'VALUES' ,'(',db_quote(package) + ,',',db_quote(which_system) ,',',db_quote(version_upstream(deb_version)) ,',',db_quote(version_epoch(deb_version)) ,',',db_quote(version_revision(deb_version)) @@ -306,6 +308,7 @@ db_builds <- function(pkgname) { con <- db_start() build <- dbGetQuery(con, paste('SELECT * FROM builds' ,'WHERE success = 1' + ,'AND system =',db_quote(which_system) ,'AND package =',db_quote(pkgname))) db_stop(con) if (length(build) == 0) { @@ -319,6 +322,7 @@ db_latest_build <- function(pkgname) { con <- db_start() build <- dbGetQuery(con, paste('SELECT * FROM builds' ,'NATURAL JOIN (SELECT package,max(id) AS max_id FROM builds' + , 'WHERE system =',db_quote(which_system) , 'GROUP BY package) AS last' ,'WHERE id = max_id' ,'AND builds.package =',db_quote(pkgname))) @@ -353,6 +357,7 @@ db_outdated_packages <- function() { # extract the latest attempt at building each package , 'SELECT * FROM builds' , 'NATURAL JOIN (SELECT package,max(id) AS max_id FROM builds' + , 'WHERE system =',db_quote(which_system) , 'GROUP BY package) AS last' , 'WHERE id = max_id) AS build' ,'ON build.package = packages.package' diff --git a/trunk/R/debianpkg.R b/trunk/R/debianpkg.R index 31bdb96..22bb5b4 100644 --- a/trunk/R/debianpkg.R +++ b/trunk/R/debianpkg.R @@ -1,12 +1,13 @@ append_build_from_pkg <- function(pkg, builds) { pkg_build <- data.frame(id = -1 # never used ,package = pkg$name + ,system = which_system ,r_version = version_upstream(pkg$debversion) ,deb_epoch = version_epoch(pkg$debversion) ,deb_revision = version_revision(pkg$debversion) ,db_version = db_get_version() ,date_stamp = pkg$date_stamp - ,git_revision = scm_revision + ,scm_revision = scm_revision ,success = 1 # never used ,log = '' # never used ) @@ -24,7 +25,7 @@ generate_changelog_entry <- function(build, changelog) { # TODO: should say 'New upstream release' when necessary debversion <- version_new(build$r_version, build$deb_revision, build$deb_epoch) cat(paste(paste(build$srcname,' (',debversion,') unstable; urgency=low',sep='') - ,'' ,paste(' * cran2deb ',build$git_revision + ,'' ,paste(' * cran2deb ',build$scm_revision ,' with DB version ',as.integer(build$db_version),'.',sep='') ,'',paste(' --',maintainer,'',build$date_stamp) ,'','','',sep='\n'),file=changelog, append=TRUE) diff --git a/trunk/R/zzz.R b/trunk/R/zzz.R index 3255fe7..d184393 100644 --- a/trunk/R/zzz.R +++ b/trunk/R/zzz.R @@ -1,24 +1,30 @@ .First.lib <- function(libname, pkgname) { global <- function(name,value) assign(name,value,envir=.GlobalEnv) + global("which_system", Sys.getenv('CRAN2DEB_SYS','debian-amd64')) + if (!length(grep('^[a-z]+-[a-z0-9]+$',which_system))) { + stop('Invalid system specification: must be of the form name-arch') + } + global("host_arch", gsub('^[a-z]+-','',which_system)) global("maintainer", 'cran2deb autobuild ') global("root", system.file(package='cran2deb')) global("cache_root", '/var/cache/cran2deb') - global("pbuilder_results", '/var/cache/cran2deb/results') - global("pbuilder_config", '/etc/cran2deb/pbuilderrc') - global("dput_config", '/etc/cran2deb/dput.cf') - global("dinstall_config", '/etc/cran2deb/mini-dinstall.conf') - global("dinstall_archive", '/etc/cran2deb/archive') + global("pbuilder_results", file.path('/var/cache/cran2deb/results',which_system)) + global("pbuilder_config", file.path('/etc/cran2deb/sys',which_system,'pbuilderrc')) + global("dput_config", file.path('/etc/cran2deb/sys',which_system,'dput.cf')) + global("dinstall_config", file.path('/etc/cran2deb/sys',which_system,'mini-dinstall.conf')) + global("dinstall_archive", file.path('/etc/cran2deb/archive',which_system)) global("r_depend_fields", c('Depends','Imports')) # Suggests, Enhances global("scm_revision", 'svn:$Id$') global("patch_dir", '/etc/cran2deb/patches') global("changesfile", function(srcname,version='*') { return(file.path(pbuilder_results ,paste(srcname,'_',version,'_' - ,host_arch(),'.changes',sep=''))) + ,host_arch,'.changes',sep=''))) }) cache <- file.path(cache_root,'cache.rda') if (file.exists(cache)) { load(cache,envir=.GlobalEnv) } + message(paste('I: cran2deb',scm_revision,'building for',which_system)) } diff --git a/trunk/data/populate_depend_aliases b/trunk/data/populate_depend_aliases index d7dc09a..19c050b 100644 --- a/trunk/data/populate_depend_aliases +++ b/trunk/data/populate_depend_aliases @@ -46,10 +46,9 @@ alias_build libpng libpng12-dev alias_run libpng libpng12-0 alias_build libxml libxml2-dev alias_run libxml libxml2 -alias_build msttcorefonts msttcorefonts -alias_run msttcorefonts msttcorefonts +alias_build msttcorefonts ttf-liberation +alias_run msttcorefonts ttf-liberation alias_run netcdf libnetcdf4 -alias_build netcdf libnetcdf-dev alias_build opengl libgl1-mesa-dev alias_run opengl libgl1-mesa-glx alias_build pari-gp pari-gp @@ -73,3 +72,17 @@ alias_build mpi libopenmpi-dev alias_build pvm pvm-dev alias_build hdf5 libhdf5-serial-dev alias_build sprng libsprng2-dev +alias_build netcdf libnetcdf-dev +alias_build libtiff libtiff4-dev +alias_build fftw libfftw3-dev +alias_build fftw-dev fftw-dev +alias_build r-recommended r-recommended +alias_run r-recommended r-recommended +alias_build libxt libxt-dev +alias_run libxt libxt6 +alias_build grass grass-dev +alias_build blacs blacsgf-mpich-dev +alias_build scalapack scalapack-mpich-dev +alias_build mpich libmpich1.0-dev +alias_run libblas libblas3gf +alias_build libblas libblas-dev diff --git a/trunk/data/populate_forcedep b/trunk/data/populate_forcedep index 799d286..03ed92a 100644 --- a/trunk/data/populate_forcedep +++ b/trunk/data/populate_forcedep @@ -2,7 +2,6 @@ force java rJava force autotools rJava force sqlite RSQLite force sqlite SQLiteDF -force boost RBGL force netcdf ncdf force cshell dse force libgtk cairoDevice @@ -16,3 +15,14 @@ force libgtk rggobi force libxml rggobi force sprng rsprng force gmp rsprng +force java JavaGD +force boost RBGL +force netcdf RNetCDF +force libtiff biOps +force fftw-dev rimage +force r-recommended spBayes +force libxt Cairo +force autotools qp +force boost MBA +force mpich RScaLAPACK +force libblas odesolve diff --git a/trunk/data/populate_sysreq b/trunk/data/populate_sysreq index b8f4b3e..51012ca 100644 --- a/trunk/data/populate_sysreq +++ b/trunk/data/populate_sysreq @@ -35,3 +35,20 @@ sysreq java java sysreq odbc %odbc% sysreq ignore drivers. see readme. sysreq ignore r must be compiled with --enable-r-shlib if the server is to be built +sysreq alias netcdf% +sysreq yacas yacas% +sysreq libtiff %libtiff% +sysreq ignore zlibdll +sysreq ignore jpegdll% +sysreq fftw fftw% +sysreq python python +sysreq ghostscript ghostscript +sysreq gsl libgsl +sysreq ignore rgl packages for rendering +sysreq grass grass +sysreq ignore internal files xba.cqv +sysreq ignore xba.regions +sysreq ignore lammpi or mpich +sysreq blas blas +sysreq blacs blacs +sysreq scalapack scalapack diff --git a/trunk/data/pull b/trunk/data/pull new file mode 100755 index 0000000..f2b7bdc --- /dev/null +++ b/trunk/data/pull @@ -0,0 +1,5 @@ +#!/bin/sh +cran2deb depend ls aliases >populate_depend_aliases +cran2deb depend ls force >populate_forcedep +cran2deb depend ls sysreq >populate_sysreq +echo NOTE: you need to update populate_licenses manually! diff --git a/trunk/exec/autobuild b/trunk/exec/autobuild index 0b24cba..f9dbaf9 100755 --- a/trunk/exec/autobuild +++ b/trunk/exec/autobuild @@ -2,7 +2,7 @@ ## DOC: cran2deb autobuild ## DOC: automatically builds all out of date packages. ## DOC: -suppressMessages(library(cran2deb)) +suppressPackageStartupMessages(library(cran2deb)) if (exists('argv')) { # check for littler db_update_package_versions() diff --git a/trunk/exec/build b/trunk/exec/build index b875e60..fbb906d 100755 --- a/trunk/exec/build +++ b/trunk/exec/build @@ -2,7 +2,7 @@ ## DOC: cran2deb build [-D extra_dep1,extra_dep2,...] package1 package2 ... ## DOC: builds a particular package. ## DOC: -suppressMessages(library(cran2deb)) +suppressPackageStartupMessages(library(cran2deb)) if (exists('argv')) { # check for littler argc <- length(argv) diff --git a/trunk/exec/latest_log b/trunk/exec/latest_log index 055991a..e548134 100644 --- a/trunk/exec/latest_log +++ b/trunk/exec/latest_log @@ -1,7 +1,7 @@ #!/usr/bin/env r ## DOC: cran2deb latest_log package1 package2 ... ## DOC: show the latest log output for -suppressMessages(library(cran2deb)) +suppressPackageStartupMessages(library(cran2deb)) if (exists('argv')) { for (pkg in argv) { diff --git a/trunk/exec/update b/trunk/exec/update index 7bcc78f..7d466b9 100755 --- a/trunk/exec/update +++ b/trunk/exec/update @@ -8,8 +8,9 @@ umask 002 root=$1 shift -mkdir -p /var/cache/cran2deb/results || exit 1 -mini-dinstall --batch -c /etc/cran2deb/mini-dinstall.conf || exit 1 +sys=`{cran2deb which_system} +mkdir -p /var/cache/cran2deb/results/$sys || exit 1 +mini-dinstall --batch -c /etc/cran2deb/sys/$sys/mini-dinstall.conf || exit 1 update_period=10800 if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) { delta=`{awk 'END{print '^$update_period^'+1}'