From ripley at stats.ox.ac.uk  Wed Apr 28 15:18:14 2004
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Wed Apr 28 15:18:17 2004
Subject: (PR#6830) Re: [Rd] 'R CMD build' fails when there are spaces in
	the path (PR#6830)
In-Reply-To: <16527.44572.924371.844940@mithrandir.hornik.net>
Message-ID: <Pine.LNX.4.44.0404281417550.25610-100000@gannet.stats>

On Wed, 28 Apr 2004, Kurt Hornik wrote:

> >>>>> Prof Brian Ripley writes:
> 
> > Note that it *does* work under Windows (via mapping names to short
> > names without spaces), so we should take care not to break that (and I
> > think adding quotes will as the shell quoting rules appear to be are
> > different).
> 
> I thought that R_system() would portably invoke a Bourne shell?

No, it is ash on Windows, which is not quite Bourne.

> 
> -k
> 
> > On Tue, 27 Apr 2004, Kurt Hornik wrote:
> 
> >> >>>>> ellis  writes:
> >> 
> >> > Full_Name: Byron Ellis
> >> > Version: R 1.9.0 (and 2.0.0)
> >> > OS: Linux (Redhat Fedora Core)
> >> > Submission from: (NULL) (140.247.241.197)
> >> 
> >> 
> >> > It appears that `R CMD build` cannot handle spaces in the path when
> >> > building packages for distribution. For instance:
> >> 
> >> > [ellis@net-78815 ~/Bayesian Networks]$ R CMD build bnsl
> >> > * checking for file 'bnsl/DESCRIPTION' ... OK
> >> > * preparing 'bnsl':
> >> > * cleaning src
> >> > * removing junk files
> >> > * building 'bnsl_0.0.1.tar.gz'
> >> > tar: Networks/bnsl_0.0.1.tar: Cannot stat: No such file or directory
> >> > tar: Error exit delayed from previous errors
> >> > tar: Networks/bnsl_0.0.1.tar: Not found in archive
> >> > tar: Error exit delayed from previous errors
> >> > Error: cannot open file 'bnsl/DESCRIPTION' for reading
> >> > [ellis@net-78815 ~/Bayesian Networks]$ 
> >> 
> >> > Results in a file named "Bayesian" (that appears to be the
> >> > uncompressed tar file) in ~/. I suspect some missing quotes somewhere.
> >> 
> >> The problem definitely occurs when calling R CMD build from a dir whose
> >> file path contains white space.  Now in R CMD build we have
> >> 
> >> $ grep filepath build.in 
> >> my $filepath = &file_path($startdir, $filename);
> >> R_system("zip -r9X $filepath.zip $pkgs $topLevelFiles");
> >> R_system("$tar chf $filepath $pkgs $topLevelFiles");
> >> R_system("gzip -9f $filepath");
> >> my $filepath = &file_path($startdir, $filename);
> >> my $origfilepath = $filepath;
> >> $filepath =~ s+^([A-Za-x]):+/cygdrive/\1+;
> >> R_system("$tar chf $filepath $pkgname");
> >> R_system("$tar xhf $filepath");
> >> R_system("$tar chf $filepath $pkgname");
> >> R_system("gzip -9f $origfilepath");
> >> 
> >> so in fact in none of the calls to R_system() with $filepath do we
> >> currently perform any kind of quoting or shell escaping.
> >> 
> >> A simple improvement would be quoting all filepaths in R_system() calls
> >> via \"...\" or '...'.  Unless someone has a better idea or wants to put
> >> in more effort ...
> 
> > -- 
> > Brian D. Ripley,                  ripley@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
> 
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
> 
> 

-- 
Brian D. Ripley,                  ripley@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


(PR#6830) Re: [Rd] 'R CMD build' fails when there are spaces in the path (PR#6830)
Prof Brian Ripley