]> git.donarmstrong.com Git - cran2deb.git/commitdiff
Merge branch/multisys into trunk.
authorblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Tue, 16 Sep 2008 14:25:15 +0000 (14:25 +0000)
committerblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Tue, 16 Sep 2008 14:25:15 +0000 (14:25 +0000)
git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@165 edb9625f-4e0d-4859-8d74-9fd3b1da38cb

15 files changed:
trunk/R/db.R
trunk/R/debianpkg.R
trunk/R/zzz.R
trunk/data/populate_depend_aliases
trunk/data/populate_forcedep
trunk/data/populate_sysreq
trunk/data/pull [new file with mode: 0755]
trunk/exec/autobuild
trunk/exec/build
trunk/exec/latest_log
trunk/exec/update
trunk/exec/update_cache
trunk/exec/which_system [new file with mode: 0755]
trunk/inst/doc/INSTALL_NOTES
trunk/inst/doc/README

index 5c9836d87844f361dd3fe7512ba3ed32730e8a66..82fa1d45a1dcb227d121dc8419ed0480d2128f9c 100644 (file)
@@ -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'
index 31bdb9609a900f16283bdac5d499ef99e482d364..22bb5b475db10babe094ceea4df65c20abaca02e 100644 (file)
@@ -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)
index 3255fe703267cb369d55474e13a3d969bcb876d7..d184393137d5a734ce977fc5041780d6afd34479 100644 (file)
@@ -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 <cran2deb@example.org>')
     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))
 }
index d7dc09a95f02192c78d844f20a0683379ab15587..19c050b6b2c20a52cb7c759cc3184727afcabe27 100644 (file)
@@ -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 
index 799d286cbab03add694bb871645c56af8bb7d028..03ed92aef970c305be1261b05f5bf7e04676a8c0 100644 (file)
@@ -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 
index b8f4b3e20912eaa4dbea482b4c21bcf3432acc43..51012cadf820f68533fefcb99b12f3c9ddd688cb 100644 (file)
@@ -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 (executable)
index 0000000..f2b7bdc
--- /dev/null
@@ -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!
index 0b24cba32edaff51fbce22e25f9d965e189193ba..f9dbaf9903e79a47861cc356ae8c9d1c8123d6a5 100755 (executable)
@@ -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()
index b875e60097c3a7174c11aa3cc0abc4fdbd236e93..fbb906dbc3d107195535450f06504f3efa287cbe 100755 (executable)
@@ -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)
index 055991a627b6ce5af68b052d0474451268959b0a..e548134a54b45f137d3d7b9018f0d1a6f908a95f 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env r
 ## DOC: cran2deb latest_log package1 package2 ...
 ## DOC:     show the latest log output for <package>
-suppressMessages(library(cran2deb))
+suppressPackageStartupMessages(library(cran2deb))
 
 if (exists('argv')) {
     for (pkg in argv) {
index 7bcc78f0ecf4bab77fca4f6a87bf6d50570a6af4..7d466b91fd49290b05f40d29ca296b447ae1186b 100755 (executable)
@@ -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}' </dev/null}
@@ -20,10 +21,10 @@ if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) {
 }
 if (![ -e /var/cache/cran2deb/cache.rda ] || [ $delta -gt $update_period ]) {
     mode=create
-    if ([ -e /var/cache/pbuilder/base-cran2deb.tgz ]) {
+    if ([ -e /var/cache/pbuilder/base-cran2deb-$sys.tgz ]) {
         mode=update
     }
-    sudo pbuilder $mode --override-config --configfile /etc/cran2deb/pbuilderrc
+    sudo pbuilder $mode --override-config --configfile /etc/cran2deb/sys/$sys/pbuilderrc
     $root/exec/update_cache $root
 }
 
index 689384670f01d01b9ce20ae4e1909bc1ca0194c2..0f3632da860df004fe70611abf9f1de3bd596869 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env Rscript
+# Note: everything in the case needs to be system-independent!
 library(cran2deb)
 library(ctv)
 
diff --git a/trunk/exec/which_system b/trunk/exec/which_system
new file mode 100755 (executable)
index 0000000..76800de
--- /dev/null
@@ -0,0 +1,7 @@
+#!/usr/bin/env r
+## DOC: cran2deb which_sys
+## DOC:     show which system cran2deb will build for next
+## DOC:
+suppressMessages(library(cran2deb))
+
+cat(which_system)
index 4d47890900fa047990e26153de285fecf0dc8964..47d22984e09ca25ab9a0ed00fde8ea68d9cbefa7 100644 (file)
@@ -1,3 +1,9 @@
+*WARNING* This is not up to date! The major difference is that now we have
+*WARNING* system-specific configurations, archives and results, so that several
+*WARNING* of the paths have either a 'sys/FOO' part or a 'FOO' part where FOO
+*WARNING* is something like debian-amd64, debian-i386..
+
+
 git clone git://github.com/blundellc/cran2deb.git
 
 apt-get system requirements from DESCRIPTION
index b521da06717445f7db29cfbda2c6f64757850efa..927ad38917ec1f444d9956da78c34303e3dd3654 100644 (file)
@@ -13,12 +13,14 @@ To configure:
 1. You need a web server serving from say, /var/www/cran2deb/
 
 Let ROOT be the value returned by running: cran2deb root
+Let SYS be the system you wish to build for (e.g., debian-amd64)
 
 2. create /etc/cran2deb
-   a. copy ROOT/etc/* into /etc/cran2deb
+   a. copy ROOT/etc/* into /etc/cran2deb/sys/SYS/
    b. /etc/cran2deb/archive should be a symlink pointing to /var/www/cran2deb/
 
     $ ln -s /var/www/cran2deb/ /etc/cran2deb/archive
+    $ mkdir /var/www/cran2deb/SYS
 
    c. modify OTHERMIRROR of /etc/cran2deb/pbuilderrc.in to point to your webserver
 
@@ -26,7 +28,7 @@ Let ROOT be the value returned by running: cran2deb root
     /var/cache/cran2deb, writable by whichever user(s) will run cran2deb.
 4. run: cran2deb update
 5. Try building a simple package: cran2deb build zoo
-   (The result will be in /var/cache/cran2deb/results)
+   (The result will be in /var/cache/cran2deb/results/SYS)
 
 
 $ cran2deb help