Dirk Eddelbuettel
2004-Jun-26 22:46 UTC
[Rd] Problem setting environment variable in R/zzz.R
I am trying to get the Rmetrics.org component package fBasics by Diethelm
Wuertz into a Debian package. Thanks to a lot of work by Diethelm, it is
_almost_ there. It fails 'R CMD check' for me if I do not have the TZ
environment variable set [1], yet works fine as long as I set TZ.
I figured I could patch this in R/zzz.R and do
## set a timezone if none found in environment variables or options()
if (Sys.getenv("TZ")=="") {
if (is.null(getOption("TZ"))) {
cat("No timezone information found, using default of GMT\n")
Sys.putenv("TZ"=="GMT")
} else {
cat("No timezone information found, applying option() value
of",
getOption("TZ"), "\n")
Sys.putenv("TZ"==getOption("TZ"))
}
}
right before library.dynam("fBasics", pkg, lib) concludes
.First.lib().
Now, even with that little patch, the R CMD check still fails. Which means
that the package could fail CRAN tests unless CRAN has TZ set. That is a bit
of a gamble I'd rather avoid.
What am I doing wrong here?
Thanks, Dirk
[1] There is a bit of a Debian tradition to, if in doubt, cover things via
a configuration file in /etc rather than an environment variable. I got
rather used to that, and like living without env.vars.
--
"Cheney has the mouth of a sailor, which is odd for someone who did
everything he could to stay out of the Navy," one observer said.
-- Andy Borowitz, http://borowitzreport.com, 26 June 2004
The help page for Sys.putenv seems to indicate using a single "=" rather than the double "==". Could that be your problem? -roger Dirk Eddelbuettel wrote:> I am trying to get the Rmetrics.org component package fBasics by Diethelm > Wuertz into a Debian package. Thanks to a lot of work by Diethelm, it is > _almost_ there. It fails 'R CMD check' for me if I do not have the TZ > environment variable set [1], yet works fine as long as I set TZ. > > I figured I could patch this in R/zzz.R and do > > ## set a timezone if none found in environment variables or options() > if (Sys.getenv("TZ")=="") { > if (is.null(getOption("TZ"))) { > cat("No timezone information found, using default of GMT\n") > Sys.putenv("TZ"=="GMT") > } else { > cat("No timezone information found, applying option() value of", > getOption("TZ"), "\n") > Sys.putenv("TZ"==getOption("TZ")) > } > } > > right before library.dynam("fBasics", pkg, lib) concludes .First.lib(). > > Now, even with that little patch, the R CMD check still fails. Which means > that the package could fail CRAN tests unless CRAN has TZ set. That is a bit > of a gamble I'd rather avoid. > > What am I doing wrong here? > > Thanks, Dirk > > > [1] There is a bit of a Debian tradition to, if in doubt, cover things via > a configuration file in /etc rather than an environment variable. I got > rather used to that, and like living without env.vars. >-- Roger D. Peng http://www.biostat.jhsph.edu/~rpeng/