[BioC] RCurl loading problem with 64 bit linux distribution

Duncan Temple Lang duncan at wald.ucdavis.edu
Wed May 7 16:38:54 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


I just put a new version of the RCurl package that is intended to
by-pass the issues with differences in libcurls and takes the
base64 encoding source into the package itself.  As I cannot
reproduce the problem readily on amy of my current machine configurations
and the package works for me on RedHat and OSX, I'd appreciate
hearing if the new version solves the problems.
It is available as

~  install.packages("RCurl", repos = "http://www.omegahat.org/R")

~ D.

Martin Morgan wrote:
| Hi Joern et al.,
|
| This thread seems to have migrated to the R-devel mailing list, where
| the currently definitive answer seems to be, from Prof. Ripley,
|
|> If you can, I'd wait until that is resolved.  I have installed
|> RCurl_0.8-3 for production' use. (It is still up at
|> http://www.omegahat.org/RCurl/RCurl_0.8-3.tar.gz,
|
| Martin
|
| Joern Toedling <toedling at ebi.ac.uk> writes:
|
|> Hello,
|> unfortunately I cannot provide a solution, but maybe I can give some more details that may help to
|> pinpoint the source of the problem.
|> I get exactly the same error message as Mark on R-2.8.0, when trying to install R-Curl_0.9-1 and
then attach it:
|> Indeed, upon using nm to look at RCurl.so, the output
|> ...
|> 000000000209420 D CurlOptionNames
|>                  U Curl_base64_decode
|>                  U Curl_base64_encode
|> ...
|> indicates that Curl_base64_encode is not defined.
|> Removing the execute bit before installation, as Martin suggested,
|> unfortunately did not solve the problem. Strangely enough, with
|> R-Curl_0.8-3, it was defined as 0000000000003978 T Curl_base64_encode
|> but then when trying to attach RCurl I got
|>
|>> library("RCurl")
|> Error in dyn.load(file, DLLpath = DLLpath, ...) :
|>
|>   unable to load shared library '/home/toedling/rpackages/RCurl/libs/RCurl.so':
|>
|>   /home/toedling/rpackages/RCurl/libs/RCurl.so: undefined symbol: allocString
|>
|> Looking at the RCurl web page of changes
|>
|> http://www.omegahat.org/RCurl/Changes.html
|>
|> it seemed that they were aware of the allocString issue and fixed it
|> in R-0.9-0, but maybe then introduced the Curl_base64_encode issue.
|>
|> Any more suggestions on how to fix this would be very welcome.
|> Below are my sessionInfo and the output upon installing RCurl-0.9-1.
|>
|> Cheers,
|> Joern
|>
|>> library("RCurl")
|> Error in dyn.load(file, DLLpath = DLLpath, ...) :
|>   unable to load shared library '/home/toedling/rpackages/RCurl/libs/RCurl.so':
|>   /home/toedling/rpackages/RCurl/libs/RCurl.so: undefined symbol: Curl_base64_encode
|> Error: package/namespace load failed for 'RCurl'
|>> sessionInfo()
|> R version 2.8.0 Under development (unstable) (2008-04-21 r45421)
|> x86_64-unknown-linux-gnu
|>
|> locale:
|>
LC_CTYPE=en_US.ISO-8859-1;LC_NUMERIC=C;LC_TIME=en_US.ISO-8859-1;LC_COLLATE=en_US.ISO-8859-1;LC_MONETARY=C;LC_MESSAGES=en_US.ISO-8859-1;LC_PAPER=en_US.ISO-8859-1;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.ISO-8859-1;LC_IDENTIFICATION=C
|>
|> attached base packages:
|> [1] stats     graphics  grDevices datasets  utils     methods   base
|>
|> other attached packages:
|> [1] fortunes_1.3-3
|>
|> ### R CMD INSTALL RCurl
|>
|> * Installing *source* package 'RCurl' ...
|> checking for curl-config... /usr/bin/curl-config
|> checking for gcc... gcc
|> checking for C compiler default output file name... a.out
|> checking whether the C compiler works... yes
|> checking whether we are cross compiling... no
|> checking for suffix of executables...
|> checking for suffix of object files... o
|> checking whether we are using the GNU C compiler... yes
|> checking whether gcc accepts -g... yes
|> checking for gcc option to accept ANSI C... none needed
|> checking how to run the C preprocessor... gcc -E
|> Version has a libidn field
|> Using Curl_base64_encode with SessionHandle parameter.
|> configure: creating ./config.status
|> config.status: creating src/Makevars
|> ** libs
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c base64.c -o base64.o
|> base64.c: In function 'R_base64_decode':
|> base64.c:27: warning: implicit declaration of function 'Curl_base64_decode'
|> base64.c: In function 'R_base64_encode':
|> base64.c:64: warning: implicit declaration of function 'Curl_base64_encode'
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c curl_base64.c -o curl_base64.o
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c curl.c -o curl.o
|> curl.c: In function 'getRStringsFromNullArray':
|> curl.c:1104: warning: assignment discards qualifiers from pointer target type
|> curl.c:1107: warning: assignment discards qualifiers from pointer target type
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c curlInit.c -o curlInit.o
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c enums.c -o enums.o
|> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1
- -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic
- -I/home/toedling/local/include/graphviz -I/local/include -c memoryManagement.c -o memoryManagement.o
|> memoryManagement.c: In function 'RCurl_releaseManagerMemoryTickets':
|> memoryManagement.c:143: warning: passing argument 1 of 'free' discards qualifiers from pointer
target type
|> gcc -std=gnu99 -shared -L/home/toedling/local/lib/graphviz -L/home/toedling/local/lib -o RCurl.so
base64.o curl_base64.o curl.o curlInit.o enums.o memoryManagement.o -L/usr/lib64 -lcurl -lidn -lssl
- -lcrypto -ldl -lz
|> ** R
|> ** inst
|> ** preparing package for lazy loading
|> ** help
|>  >>> Building/Updating help pages for package 'RCurl'
|>      Formats: text html latex example
|> Note: removing empty section \examples
|> Note: removing empty section \references
|> Note: removing empty section \seealso
|> Note: removing empty section \examples
|> Note: unmatched right brace in 'MultiCURLHandle-class' on or after line 28
|> Note: removing empty section \examples
|> Note: removing empty section \examples
|> Note: removing empty section \examples
|> Note: removing empty section \examples
|> ** building package indices ...
|> * DONE (RCurl)
|>
|>
|>
|> Martin Morgan wrote:
|>> Hi Mark...
|>>
|>> A couple of shots in the dark, as no one else seems to be leaping in...
|>>
|>> The symbol Curl_base64_encode should be defined in
|>> /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so.  What
|>> does
|>>
|>> nm /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so
|>>
|>> say? Mine says
|>>
|>> 0000000000003980 T Curl_base64_encode
|>>
|>> with the 'T' indicating that the symbol is defined (make sure nm spits
|>> out a bunch of lines before concluding that Curl_base64_encode is not
|>> defined).
|>>
|>> I retrieved the RCurl source, and one thing I notice is that
|>> RCurl/src/curl_base64.c has the 'execute' bit set, and perhaps a sane
|>> system would not compile it. Try
|>>
|>> % chmod -x RCurl/src/curl_base64.c
|>>
|>> and then
|>>
|>> % R CMD INSTALL RCurl
|>>
|>> Martin
|>>
|>> "Mark Kimpel" <mwkimpel at gmail.com> writes:
|>>
|>>
|>>> I'm having same problem on Ubuntu 64-bit Hardy Heron. A bunch of security
|>>> patches from Ubuntu came out and I installed them today. After that was when
|>>> I first noted the problem (affycoretools, which I use all the time, won't
|>>> load). Below is my initial output, what follows is my reinstallation output
|>>> followed by the same error messages as obtained intially. I wonder if a
|>>> security patch has changed Curl? Or did RCurl just change? I have been using
|>>> R-2.7.0 since half-way through its develoment cycle and this is a new
|>>> problem for me.
|>>>
|>>> Mark
|>>>
|>>>
|>>>> require(RCurl)
|>>>>
|>>> Loading required package: RCurl
|>>> Error in dyn.load(file, DLLpath = DLLpath, ...) :
|>>>   unable to load shared library
|>>> '/home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so':
|>>>   /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so: undefined
|>>> symbol: Curl_base64_encode
|>>>
|>>>> install.packages("RCurl")
|>>>>
|> _______________________________________________
|> Bioconductor mailing list
|> Bioconductor at stat.math.ethz.ch
|> https://stat.ethz.ch/mailman/listinfo/bioconductor
|> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIIb7+9p/Jzwa2QP4RAuIpAJ0QpWZEb/cxQ+VOkx+JkiJLKKDThACfdKdq
byokNcbYyZ4ebhN3fanJA1A=
=LBuS
-----END PGP SIGNATURE-----



More information about the Bioconductor mailing list