[Rd] package file permissions problem R 3.0.0/Windows OS

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Apr 15 21:19:21 CEST 2013


On 15/04/2013 14:11, John Fox wrote:
> Dear Brian,
>
> On Mon, 15 Apr 2013 06:56:26 +0100
>   Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
>> POSIX-style execute permission isn't a Windows concept, so it was fortuitous this ever worked.  One possibility is that Cygwin was involved, and a Cygwin emulation got set when tar unpacked the file and converted back to the tar representation when Cygwin tar produced the tarball. (The tar in Rtools is a fixed version of Cygwin tar, fixed to use Windows file paths.)
>>
>
> Recall that the problem was first detected when I submitted to CRAN
> a
new version of the sem package that I built on one of my Windows
systems. I'm guessing that you unpacked that on a Linux system. Perhaps
I misunderstand the point, but if the problem is in unpacking, then
shouldn't I see it when the package is built on R 2.15.2 (not 2.5.2 --
sorry, my typo)?

The puzzle is how you got execute permissions recorded for files on your 
Windows system.  They are not part of the Windows file system: Cygwin 
uses ACLs to emulate them.  Once the ACLs are there, a Cygwin-based tar 
will put them as permissions into the tarball.  But a native Windows 
tool would not (it might or might not capture the ACLs using a tar 
extension, but those would be ignored by most unpacking tools on a 
Unix-alike).

The issue is not really Windows: if you use a FAT file system on a 
Unix-alike you have the same problem -- this is why SMB mounts at least 
did not work on OS X for building R (and much else), and you need to be 
careful transferring directories via USB sticks (which are usually 
FAT-formatted).  That route usually makes the opposite compromise: to 
assume everything is executable.

>> What are those screen shots of?
>
> 7zip, which I use on Windows to manage file archives.

Ah, so that's a listing of the .tar.gz, a graphical form of tar -tvf.

>> R 2.5.2 was a very long time ago.  A recent change is
>
> Indeed. Again, that is my unfortunate typo -- I used 2.15.2. I wanted to confirm that I can build packages with the correct permissions on my Windows systems using an older (but recent) version of R.
>
>>
>>       • R CMD build by default uses the internal method of tar() to
>>         prepare the tarball.  This is more likely to produce a tarball
>>         compatible with R CMD INSTALL and R CMD check: an external tar
>>         program, including options, can be specified _via_ the
>>         environment variable R_BUILD_TAR.
>>
>
> I saw that but didn't understand its import. That makes sense of a difference between R 2.15.2 and 3.0.0, though I'm not sure why this change would introduce a problem with the permissions.
>
>> Can you try using an external tar?  (Using the internal tar on Windows was first trialled in 2.15.3.)
>>
>
> Yes, when I "set R_BUILD_TAR=tar" on my Windows 8 system, the tarball for the package is built with the correct permissions under R 3.0.0. The tar should be found in the Rtools\bin directory, which is first on my path. I don't have Cygwin installed on this machine independently of Rtools.
>
> What's curious to me is that I'm seeing the problem on two different Windows system but, AFAIK, no one else has experienced a similar problem.

Very few Windows users will ever get a file that appears to 'tar' to 
have execute permissions.  For example, svn checkouts on Windows lose 
execute permissions, something which has caught me for time to time over 
the years.

> Thanks for your help,
>   John
>
>>
>> On 14/04/2013 22:17, John Fox wrote:
>>> Dear list members,
>>>
>>> I'm experiencing a file permissions problem with a package built under
>>> Windows with R 3.0.0. I've encountered the problem on two Windows computers,
>>> one running Windows 7 and the other Windows 8, and both when I build the
>>> package under RStudio or directly in a Windows console via "R CMD build".
>>>
>>> In particular, the cleanup file for the package, which as I understand it
>>> should have permissions set at rwx-r-r, instead has permissions rw-rw-rw.
>>> I've attached two .png screen shots showing how the permissions are set when
>>> the package is built under R 2.5.2 and R 3.0.0.
>>>
>>> I think that my two Windows systems are reasonably vanilla. Here are the
>>> system and session info from R 3.0.0 run from a Windows console:
>>>
>>>> Sys.info()
>>>                        sysname                      release
>>>                      "Windows"                      "7 x64"
>>>                        version                     nodename
>>> "build 7601, Service Pack 1"              "JOHN-DELL-XPS"
>>>                        machine                        login
>>>                          "x86"                       "User"
>>>                           user               effective_user
>>>                         "User"                       "User"
>>>
>>>> sessionInfo()
>>> R version 3.0.0 (2013-04-03)
>>> Platform: i386-w64-mingw32/i386 (32-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
>>>
>>> I have the latest Rtools30 installed and on my path:
>>>
>>>> Sys.which("tar.exe")
>>>                      tar.exe
>>> "c:\\Rtools\\bin\\tar.exe"
>>>
>>> Is this a general problem or is it possible that there's something about my
>>> Windows configurations that's causing it?
>>>
>>> Any information would be appreciated.
>>>
>>> John
>>>
>>> -----------------------------------------------
>>> John Fox
>>> Senator McMaster Professor of Social Statistics
>>> Department of Sociology
>>> McMaster University
>>> Hamilton, Ontario, Canada
>>>
>>>
>>>
>>>
>>> ______________________________________________
>>> 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


-- 
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



More information about the R-devel mailing list