possibly stupid question about RPM building
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