From bates at stat.wisc.edu  Sun Jun 13 19:00:54 2010
From: bates at stat.wisc.edu (Douglas Bates)
Date: Sun, 13 Jun 2010 12:00:54 -0500
Subject: [Rd] Failure to load the recommended package Matrix (Was: [R] Can
	one get a list of recommended packages?)
Message-ID: <AANLkTimYWiboiAqahS3BUjKRXr2Otcfsf-8uqfKy0c72@mail.gmail.com>

On Sun, Jun 13, 2010 at 8:28 AM, Uwe Ligges
<ligges at statistik.tu-dortmund.de> wrote:
>
>
> On 13.06.2010 01:09, Dr. David Kirkby wrote:
>>
>> On 06/12/10 05:27 PM, Douglas Bates wrote:
>>>
>>> On Sat, Jun 12, 2010 at 8:37 AM, Dr. David Kirkby
>>> <david.kirkby at onetel.net> wrote:
>>>>
>>>> R 2.10.1 is used in the Sage maths project. Several recommended packages
>>>> (Matrix, class, mgcv, nnet, rpart, spatial, and survival) are failing to
>>>> build on Solaris 10 (SPARC).
>>>
>>> Have you checked the dependencies for those packages? Some require GNU
>>> make.
>>
>> We used GNU make.
>>
>>>> We would like to be able to get a list of the recommended packages for R
>>>> 2.10.1, but ideally via a call to R, so it is not necessary to update
>>>> that
>>>> list every time a new version of R is released. We do not want to
>>>> access the
>>>> Internet to get this information.
>>>
>>>> Is there a way in R to list the recommended packages?
>>>
>>> I'm not sure I understand the logic of this. If you are going to
>>> build R then presumably you have the tar.gz file which contains the
>>> sources for the recommended packages in the subdirectory
>>> src/library/Recommended/. Why not get the list from there?
>>
>> The reason is when the version of R gets updated in Sage, then someone
>> will have to check that list again, and more than likely fail to do so,
>> with the result tests will fail since packages do not exist, or worst
>> still we will be unaware they have failed to build properly.
>>
>> Therefore, being able to get them from a command would be useful, but
>> can understand if that is not possible.
>>
>>> $ cd ~/src/R-devel/src/library/Recommended/
>>> $ ls *.tgz
>>> boot.tgz codetools.tgz lattice.tgz mgcv.tgz rpart.tgz
>>> class.tgz foreign.tgz MASS.tgz nlme.tgz spatial.tgz
>>> cluster.tgz KernSmooth.tgz Matrix.tgz nnet.tgz survival.tgz
>>
>> OK, thank you for that list.
>>
>>>> Better still, is there a way to list the recommended packages which
>>>> have not
>>>> been installed, so getting a list of any failures?
>>>
>>> Again, this seems to be a rather convoluted approach. Why not check
>>> why the packages don't install properly?
>>
>> R had built, and the failure of the packages to build was not very
>> obvious, since it did not cause make to exit with a non-zero exit code.
>> Nobody had noticed until very recently that there was a problem.
>>
>> Therefore I proposed to make a test of the packages that should have
>> been installed, and ensure they actually all had.
>>
>> You need to be aware that R is just one part of Sage. Building the whole
>> of Sage takes a long time (>24 hours on some computers) so needless to
>> say, people will not view every line of error messages. The fact that
>> 'make' succeeded left us a false sense of security, when later it was
>> realsed there were problems when R run its self-tests.
>>
>> Dave
>
>
> But if you really want to sense some security, you should really run
> make check-all
> after the installation, particularly since you are on a platform that is not
> really mainstream any more.
>
> Uwe Ligges

And if you look at the other R-help message posted by David Kirby you
will find a link to the trouble ticket report in Sage as
http://trac.sagemath.org/sage_trac/ticket/9201
which, fortunately, contains a link to the compilation log file
http://sage.math.washington.edu/home/mpatel/trac/8306/r-2.10.1.p2.log

The log file correctly points out the problem, which is that the
compiled shared object for the Matrix package can't be loaded because
it contains references to objects in another library from the compiler
and that library is not on the LD_LIBRARY_PATH during the dyn.load
from within R.  So the original poster needs to look at how the
DLLpath is being configured.

Exactly how this ended up as a request to somehow determine a list of
recommended packages on the fly from within R is a wonderful example
of misguided speculation but has nothing whatsoever to do with the
problem.  Even the idea that there are a host of other recommended
packages that failed to compile because they depend on the Matrix
package is pure speculation and, of course, hopelessly wrong.  The
installation of the Matrix package failed because the check on whether
the package could be loaded failed.  The compilation of the
recommended packages stopped at that point.  The other packages
weren't compiled because they came after the Matrix package in the
compilation sequence.

Problems in compilation of R or its recommended packages should be
reported on the R-devel mailing list and I have moved this thread from
R-help to R-devel.

Admittedly it was the original poster of the Sage trouble ticket who
decided that the issue to focus on was missing recommended packages.
That's a red herring.  The issue is the visibility of the some of the
libraries from the gcc toolchain when R is loading a package.



[Rd] Failure to load the recommended package Matrix (Was: [R] Can one get a list of recommended packages?)
Douglas Bates