Martyn,
  No, that didn't work.
One other thing in the mix (which I don't think is the issue) is that I call one of the C-entry points of expm. So the DESCRIPTION file imports expm, the NAMESPACE file imports expm, and the init.c file is

#include "R.h"
#include "R_ext/Rdynload.h"

/* Interface to expm package. */
typedef enum {Ward_2, Ward_1, Ward_buggy_octave} precond_type;
void (*expm)(double *x, int n, double *z, precond_type precond_kind);
void R_init_hmm(DllInfo *dll)
{
    expm = (void (*)) R_GetCCallable("expm", "expm");
}

I don't expect that this is the problem since I stole the above almost verbatim from the msm package.

Terry T.


On 02/09/2017 11:23 AM, Martyn Plummer wrote:
On Thu, 2017-02-09 at 09:52 -0600, Therneau, Terry M., Ph.D. wrote:
Martin,
   I am aware of --vanilla; I use it myself for some testing.  In this case 
R_LIBS_USER was
set externally (part of my login) and does not involve any of the R scripts.  
That means
it is inherited by any subprocess.  For example:

tmt1495% R --vanilla --no-environ

R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)


system("printenv | grep R_LIBS")
R_LIBS_SITE=
R_LIBS_USER=/people/biostat2/therneau/Rlib

So, per the manual R CMD check inherits the path.  The question is
why does it ignore it?

Hmmm. Perhaps it is being overwritten.  Does this work?

$ export R_CHECK_ENVIRON=
$ R CMD check hmm.gz

Martyn

Terry T.


On 02/09/2017 02:54 AM, Martyn Plummer wrote:

On Wed, 2017-02-08 at 15:51 -0600, Therneau, Terry M., Ph.D. wrote:

I have a local library which depends on the expm library.  The expm library is 
loaded into
my personal space and I have the environment variable R_LIBS_USER set 
appropriately.  The
command "library(expm)" works just fine from the command line, and in fact the 
package
works if I do the source() and dyn.load() commands by hand.

The following sequence works:

tmt% R CMD build --no-build-vignettes hmm
tmt% R CMD INSTALL hmm*gz
tmt% R
   > library(hmm)
   >  run some commands from the hmm library

But "R CMD check hmm.gz" fails with
     ERROR: dependency ‘expm’ is not available for package ‘hmm’
* removing
‘/people/biostat2/therneau/consult/alzheimer/hmm.Rcheck/hmm’

The R CMD build command fails similarly if I let it try to build the
vignettes.

What's up?

If you are setting the environment variable R_LIBS_USER in
R_HOME/site/Renviron.site or in .Renviron then this file will not be
read when you run R CMD check or R CMD build, as R is then run with --
vanilla which implies --no-environ.

You also need to set it in these files:

~/.R/build.Renviron
~/.R/check.Renviron

See R-exts section 1.3 and ?Startup.

Martyn
        

Terry T


   > sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS release 6.8 (Final)

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to