From ripley at stats.ox.ac.uk  Tue Jun  5 12:45:39 2012
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 5 Jun 2012 11:45:39 +0100 (BST)
Subject: [Rd] R CMD check: Sys.getenv("R_GSCMD") cannot contain full
 pathname (contrary to docs)
In-Reply-To: <CAFDcVCSox=E7Srr=AQ=oL8Bw+MpgLKYJH5ZkMvgFPih4Srx6pw@mail.gmail.com>
References: <CAFDcVCTR0YdHxRBQ+YOt=YzLSmj5g27HpvPF1Jk9R9LQ47vLXA@mail.gmail.com>
	<CAFDcVCSox=E7Srr=AQ=oL8Bw+MpgLKYJH5ZkMvgFPih4Srx6pw@mail.gmail.com>
Message-ID: <alpine.LFD.2.02.1206051129260.1141@gannet.stats.ox.ac.uk>

This is simply not true.  Sys.which() should accept absolute paths, 
and does on my systems (even my Windows system).  However, it looks 
like you gave an unescaped path containing spaces.  Most likely you 
need to include that path in double quotes (just as you would on a 
Windows shell).

On Wed, 30 May 2012, Henrik Bengtsson wrote:

> Bump, in case it was missed.  This is also the case with R Under
> development (unstable) (2012-05-25 r59443).  /Henrik
>
> On Fri, Apr 20, 2012 at 2:00 PM, Henrik Bengtsson <hb at biostat.ucsf.edu> wrote:
>> Hi,
>>
>> in help("R_GSCMD") it says "R_GSCMD: Optional. The path to
>> Ghostscript, used by dev2bitmap, bitmap and embedFonts. Consulted when
>> those functions are invoked.". ?However, if 'R_GSCMD' contains a full
>> pathname to the Ghostscript executable (as above "path" indicates),
>> e.g.
>>
>>> Sys.getenv("R_GSCMD")
>> [1] "C:\\Program Files\\gs\\gs8.71\\bin\\gswin32c.exe"
>>
>> then 'R CMD check' will report
>>
>> * checking sizes of PDF files under 'inst/doc' ... NOTE
>> Unable to find GhostScript executable to run checks on size reduction
>>
>> Setting 'R_GSCMD' to "gswin32c.exe" and asserting that it is the PATH
>> (this is on Windows), it works.
>>
>>
>> TROUBLESHOOTING:
>> In the local function check_doc_size() of tools:::.check_packages()
>> [cf. http://svn.r-project.org/R/trunk/src/library/tools/R/check.R],
>> the Ghostscript executable is retrieved as:
>>
>> ?gs_cmd <- find_gs_cmd(Sys.getenv("R_GSCMD", ""))
>>
>> and if nzchar(gs_cmd) is FALSE, then the 'R CMD check' NOTE appears.
>> Inspecting tools:::find_gs_cmd, this corresponds to
>>
>> ?gs_cmd <- Sys.which(Sys.getenv("R_GSCMD", ""))
>>
>> iff 'R_GSCMD' is set. ?In other words, tools:::find_gs_cmd() assumes a
>> basename not a full pathname.
>>
>>
>> SUGGESTIONS:
>> Update tools:::find_gs_cmd() to test for file existence before turning
>> to Sys.which(), e.g.
>>
>> find_gs_cmd <- function (gs_cmd)
>> {
>> ? ?if (!nzchar(gs_cmd)) {
>> ? ? ? ?if (.Platform$OS.type == "windows") {
>> ? ? ? ? ? ?gs_cmd <- Sys.which("gswin64c")
>> ? ? ? ? ? ?if (!nzchar(gs_cmd))
>> ? ? ? ? ? ? ? ?gs_cmd <- Sys.which("gswin32c")
>> ? ? ? ? ? ?gs_cmd
>> ? ? ? ?}
>> ? ? ? ?else Sys.which("gs")
>> ? ?} else {
>> ? ? ?if (file.exists(gs_cmd) && !file.info(gs_cmd)$isdir)
>> ? ? ? ?gs_cmd
>> ? ? ?else
>> ? ? ? ?Sys.which(gs_cmd)
>> ? }
>> }
>>
>>
>> /Henrik
>>
>>> sessionInfo()
>> R version 2.15.0 Patched (2012-04-08 r58935)
>> Platform: x86_64-pc-mingw32/x64 (64-bit)
>>
>> locale:
>> [1] LC_COLLATE=English_United States.1252
>> [2] LC_CTYPE=English_United States.1252
>> [3] LC_MONETARY=English_United States.1252
>> [4] LC_NUMERIC=C
>> [5] LC_TIME=English_United States.1252
>>
>> attached base packages:
>> [1] stats ? ? graphics ?grDevices utils ? ? datasets ?methods ? base
>>
>> loaded via a namespace (and not attached):
>> [1] R.methodsS3_1.4.0 tools_2.15.0
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] R CMD check: Sys.getenv("R_GSCMD") cannot contain full pathname (contrary to docs)
Prof Brian Ripley