On Tue, 18 Jul 2006, Ben Bolker wrote:
>
> I'm trying to build an RPM of R 2.3.1 on a very old RedHat system
> (specifically, a ROCKS 3.3.0 cluster which is built on RH enterprise
> 3 (I think??))
`Very old' to me suggested 7.x or so ....
> I downloaded R-2.3.1.tgz from CRAN; downloaded the R.spec file
> cran.r-project.org/http://cran.r-project.org/bin/linux/redhat/SRPMS/ ;
> and ran rpmbuild -ba R.specs.
I think the official procedures are to either
1) build the tarball according to the usual instructions
2) download the SRPM and use rpmbuild --rebuild on that
Can you check 1) works and if so try 2)?
The error message suggests that either the wrong R is being picked up or
that makeLazyLoading has indeed been run on the tools package. I don't
know that it matters, but I would check that R_HOME was not set in the
build environment.
> Everything goes along fine until ...
>
> make[5]: Entering directory
> `/usr/src/redhat/BUILD/R-2.3.1/src/library/tools/src'
> gcc -I../../../../include -I../../../../include -I/usr/local/include
> -fpic -O2 -g -march=i386 -mcpu=i686 -c text.c -o text.o
> gcc -I../../../../include -I../../../../include -I/usr/local/include
> -fpic -O2 -g -march=i386 -mcpu=i686 -c init.c -o init.o
> gcc -I../../../../include -I../../../../include -I/usr/local/include
> -fpic -O2 -g -march=i386 -mcpu=i686 -c Rmd5.c -o Rmd5.o
> gcc -I../../../../include -I../../../../include -I/usr/local/include
> -fpic -O2 -g -march=i386 -mcpu=i686 -c md5.c -o md5.o
> gcc -shared -L/usr/local/lib -o tools.so text.o init.o Rmd5.o md5.o
> -L../../../../lib -lR
> mkdir -p -- ../../../../library/tools/libs
> make[5]: Leaving directory
> `/usr/src/redhat/BUILD/R-2.3.1/src/library/tools/src'
> make[4]: Leaving directory
> `/usr/src/redhat/BUILD/R-2.3.1/src/library/tools/src'
> Warning message:
> package seems to be using lazy loading already in:
makeLazyLoading("tools")
> Error in lazyLoadDBfetch(key, datafile, compressed, envhook) :
> internal error in R_decompress1
> Execution halted
>
>
> Thereafter, going to /usr/src/redhat/BUILD/R-2.3.1/src/library/tools and
> executing "make" gives essentially the same result.
>
> digging deeper finds the error message within
> library/tools/R/makeLazyLoad.R:
>
> if (file.info(codeFile)["size"] ==
file.info(loaderFile)["size"])
> warning("package seems to be using lazy loading already")
>
> hacking this file to produce more output identifies codeFile
> as /usr/lib/R/library/tools/R/tools and loaderFile as below:
>
>
> [root at bolker-cluster tools]# ls -l
> /usr/src/redhat/BUILD/R-2.3.1/share/R/nspackloader.R
> -rw-r--r-- 1 root root 384 Jul 18 18:29
> /usr/src/redhat/BUILD/R-2.3.1/share/R/nspackloader.R
> [root at bolker-cluster tools]# ls -l /usr/lib/R/library/tools/R/tools
> -rw-r--r-- 1 root root 384 Jul 18 17:33
> /usr/lib/R/library/tools/R/tools
>
> ?? I am at the edge of my comprehension here ...
>
> Searching for "R_decompress1", "internal error",
etc., on
> Google/RSiteSearch gave nothing
>
> Searching on "package seems to be using lazy loading already"
finds
> a few old hits, but no solutions.
>
> I have 252M free space (the first time this happened I had only
> 50M ...)
>
>
> Could this possibly be related to having another (old) instance
> of R running at the same time? Seems unlikely but ...
>
>
> does anyone have any hints?
>
> sincerely
> Ben Bolker
>
>
--
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