Finance::Quote problem

GN gnichols at tpg.com.au
Tue Sep 1 01:45:28 EDT 2009


On 08/29/2009 11:34 PM, Erik Colson wrote:
>
> On 29 Aug 2009, at 06:02, GN wrote:
>> Hello Erik,
>>
>> Thank you for your reply.
>>
>> I have only one version of perl.
>>
>> [graeme at flintstone ~]$ rpm -qi perl
>> Name : perl Relocations: (not relocatable)
>> Version : 5.10.0 Vendor: Fedora Project
>> Release : 68.fc11 Build Date: Fri 10 Apr 2009 08:47:43 PM EST
>> Install Date: Sat 15 Aug 2009 03:36:09 PM EST Build Host:
>> x86-4.fedora.phx.redhat.com
>> Group : Development/Languages Source RPM: perl-5.10.0-68.fc11.src.rpm
>> Size : 29714844 License: (GPL+ or Artistic) and (GPLv2+ or Artistic)
>> Signature : RSA/8, Sat 18 Apr 2009 01:16:56 AM EST, Key ID
>> 1dc5c758d22e77f2
>> Packager : Fedora Project
>> URL : http://www.perl.org/
>> Summary : Practical Extraction and Report Language.
>>
>
> This only lists perl installation with rpm. you might still have
> self-compiled your own perl, but I guess you didn't do that...
> Did you do a system upgrade ? If you did a system upgrade, some modules
> might not have been reinstalled (compiled) correctly...
>
>> SSleay.pm is installed into
>> /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/Crypt which
>> I believe is correct. Please tell me if I am wrong.
>
> depends if that directory is listed in your PERL5LIB system variable.
>
>>
>> Running perl -e "use Crypt::SSLeay" gives the following error:
>>
>> [graeme at flintstone ~]$ perl -e "use Crypt::SSLeay"
>> Can't load
>> '/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/auto/Crypt/SSLeay/SSLeay.so'
>> for module Crypt::SSLeay: libssl.so.7: cannot open shared object file:
>> No such file or directory at
>> /usr/lib/perl5/5.10.0/i386-linux-thread-multi/DynaLoader.pm line 203.
>> at -e line 1
>> Compilation failed in require at -e line 1.
>> BEGIN failed--compilation aborted at -e line 1.
>> [graeme at flintstone ~]$
>>
>
> There should be no error here ! so this is totally unrelated to Gnucash !
>
>> SSLeay.so is indeed at
>> /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/auto/Crypt/SSLeay/
>> so I'm not sure what is actually going on. Line 203 in the error above
>> is the code that displays the error. Not being a programmer I don't
>> know what the 'require at -e line 1' means as there is no 'require' at
>> line 1.
>>
>> Strangely, I think the problem is in GnuCash. I keep both GnuCash and
>> KMyMoney2 on my system. Not being a programmer and GnuCash having
>> pretty much no reports that produce their results in figures instead
>> of graphs I use KMyMoney2 to produce my reports. KMyMoney2 reads my
>> GnuCash xml file with no problems. KMyMoney2, which also uses
>> Finance::Quote, gets my prices OK leading me to believe that basically
>> Finance::Quote is installed OK. I may be wrong :-) It may not use the
>> Crypt::SSLeay module.
>>
>> Perhaps the above means something to you. I hope it does :-)
>>
>> One thing that may be pertinent is that my cpan installation is not
>> the latest so I updated cpan and did another install of
>> Finance::Quote. The response was that Finance::Quote was up to date v
>> 1.16.
>>
>
> The problem is Crypt::SSLeay. well, not exactly. it comes from
> libssl.so.7 which is part of openssl. is openssl working correctly ? if
> yes, then Crypt::SSLeay isn't. For sure, your problem is one of those 2
> things.
>
> Did you install Crypt::SSLeay from cpan ? or by rpm ?
> if by rpm: uninstall it. uninstall openssl. (your settings are located
> in ~/.openssl and that won't be removed). reinstall both. you should be
> ok then.
> if by cpan: delete the
> /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/auto/Crypt/SSLeay/
> directory completely. then uninstall openssl. reinstall openssl,
> reinstall Crypt::SSLeay from cpan (be sure to check if errors are
> reported).
>
> For information Crypt::SSLeay isn't used for getting all stock prices.
> It is only used when retrieving quotes from DWS, Deka, GoldMoney, Tiaacref.
>
> Hope that helps
>
> --
> erik

Hi Erik,

Thank you.

Openssl is working OK I would think as it is used by a raft of 
applications in Fedora 11 and I cannot rpm -e openssl as there are heaps 
of dependencies.

I didn't install Crypt::SSLeay using rpm or cpan. I used the command 
gnc-fq-dump and got the following:

/usr/bin/gnc-fq-dump cannot find all the Perl modules needed to run.

Install Crypt::SSLeay or run gnc-fq-update as root.

I ran gnc-fq-upate as root and it installed a lot of Perl modules as 
well as Crypt::SSLeay. See following:

<snip>
Writing 
/usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi/auto/HTML/Parser/.packlist
Appending installation info to 
/usr/lib/perl5/5.10.0/i386-linux-thread-multi/perllocal.pod
   GAAS/HTML-Parser-3.62.tar.gz
   /usr/bin/make install  -- OK
HTML::TableExtract is up to date (2.10).
Crypt::SSLeay is up to date (0.57).
Finance::Quote is up to date (1.16).
[root at flintstone graeme]#

I deleted the two directories 
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/auto/Crypt/SSLeay/
and /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/auto/Crypt/
then tried to install Crypt::SSLeay using cpan as root and received the 
message;
Warning: Cannot install Crypt::SSleay, don't know what it is. 

Try the command 


     i /Crypt::SSleay/

to find objects with matching identifiers.

Which I did and got the following;
cpan[2]> i /Crypt::SSleay/
Module  = Crypt::SSLeay          (DLAND/Crypt-SSLeay-0.57.tar.gz)
Module  = Crypt::SSLeay::CTX     (DLAND/Crypt-SSLeay-0.57.tar.gz)
Module  = Crypt::SSLeay::Conn    (DLAND/Crypt-SSLeay-0.57.tar.gz)
Module  = Crypt::SSLeay::Err     (DLAND/Crypt-SSLeay-0.57.tar.gz)
Module  = Crypt::SSLeay::MainContext (DLAND/Crypt-SSLeay-0.57.tar.gz)
Module  = Crypt::SSLeay::X509    (DLAND/Crypt-SSLeay-0.57.tar.gz)
6 items found

cpan[3]>

I then did the folowing;
cpan[3]> install Crypt::SSLeay
Crypt::SSLeay is up to date (0.57).

The two directories I deleted were not remade. SO I did a 'test' on 
Crypt::SSLeay and got the following;
cpan[7]> test Crypt::SSLeay
Running test for module 'Crypt::SSLeay'
Running make for D/DL/DLAND/Crypt-SSLeay-0.57.tar.gz
Fetching with LWP:
   http://cpan.schools.net.au/authors/id/D/DL/DLAND/Crypt-SSLeay-0.57.tar.gz

   CPAN: checksum security checks disabled because Digest::SHA not 
installed.
   Please consider installing the Digest::SHA module. 


Scanning cache /root/.cpan/build for sizes
............................................................................DONE
CPAN: Archive::Tar loaded ok (v1.46) 

Will not use Archive::Tar, need 1.00 

Crypt-SSLeay-0.57 

Crypt-SSLeay-0.57/t 

Crypt-SSLeay-0.57/Changes 

Crypt-SSLeay-0.57/lib 

Crypt-SSLeay-0.57/certs 

Crypt-SSLeay-0.57/MANIFEST 

Crypt-SSLeay-0.57/TODO 

Crypt-SSLeay-0.57/typemap 

Crypt-SSLeay-0.57/MANIFEST.SKIP 

Crypt-SSLeay-0.57/eg 

Crypt-SSLeay-0.57/SSLeay.pm 

Crypt-SSLeay-0.57/SSLeay.xs 

Crypt-SSLeay-0.57/README 

Crypt-SSLeay-0.57/Makefile.PL 

Crypt-SSLeay-0.57/META.yml 

Crypt-SSLeay-0.57/eg/lwp-ssl-test 

Crypt-SSLeay-0.57/eg/net-ssl-test 

Crypt-SSLeay-0.57/certs/ca-bundle.crt 

Crypt-SSLeay-0.57/certs/notacakeynopass.pem 

Crypt-SSLeay-0.57/certs/notacacert.pem 

Crypt-SSLeay-0.57/lib/Crypt 

Crypt-SSLeay-0.57/lib/Net 

Crypt-SSLeay-0.57/lib/Net/SSL.pm 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay/MainContext.pm 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay/Conn.pm 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay/X509.pm 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay/Err.pm 

Crypt-SSLeay-0.57/lib/Crypt/SSLeay/CTX.pm 

Crypt-SSLeay-0.57/t/00-basic.t 

Crypt-SSLeay-0.57/t/02-live.t 

Crypt-SSLeay-0.57/t/01-connect.t 

CPAN: File::Temp loaded ok (v0.21) 


   CPAN.pm: Going to build D/DL/DLAND/Crypt-SSLeay-0.57.tar.gz

=======================================================
Only one OpenSSL installation found at /usr
Consider running 'perl Makefile.PL --default' the next
time Crypt::SSLeay is upgraded to select this directory
automatically thereby avoiding the following prompt.
=======================================================
Which SSL install path do you want to use? [/usr]

BUILD INFORMATION
================================================
ssl library: OpenSSL 0.9.8 in /usr
ssl header:  openssl/ssl.h
libraries:   -L/usr/lib -lssl -lcrypto -lgcc
include dir: -I/usr/include/openssl
================================================
Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -lgcc
Writing Makefile for Crypt::SSLeay
The test suite can attempt to connect to public servers
to ensure that the code is working properly. If you are
behind a strict firewall or have no network connectivity,
these tests may fail (through no fault of the code).

Do you want to run the live tests (y/N) ? [N]
cp lib/Crypt/SSLeay/X509.pm blib/lib/Crypt/SSLeay/X509.pm
cp lib/Net/SSL.pm blib/lib/Net/SSL.pm
cp SSLeay.pm blib/lib/Crypt/SSLeay.pm
cp lib/Crypt/SSLeay/MainContext.pm blib/lib/Crypt/SSLeay/MainContext.pm
cp lib/Crypt/SSLeay/CTX.pm blib/lib/Crypt/SSLeay/CTX.pm
cp lib/Crypt/SSLeay/Conn.pm blib/lib/Crypt/SSLeay/Conn.pm
cp lib/Crypt/SSLeay/Err.pm blib/lib/Crypt/SSLeay/Err.pm
/usr/bin/perl /usr/lib/perl5/5.10.0/ExtUtils/xsubpp  -typemap 
/usr/lib/perl5/5.10.0/ExtUtils/typemap -typemap typemap  SSLeay.xs > 
SSLeay.xsc && mv SSLeay.xsc SSLeay.c 

gcc -c  -I/usr/include/openssl -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING 
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall 
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
--param=ssp-buffer-size=4 -m32 -march=i586 -mtune=generic 
-fasynchronous-unwind-tables -DPERL_USE_SAFE_PUTENV   -DVERSION=\"0.57\" 
-DXS_VERSION=\"0.57\" -fPIC 
"-I/usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE"   SSLeay.c 

SSLeay.c: In function ‘XS_Crypt__SSLeay__CTX_new’: 

SSLeay.c:132: warning: unused variable ‘packname’ 

SSLeay.c: In function ‘XS_Crypt__SSLeay__Conn_new’: 

SSLeay.c:449: warning: unused variable ‘packname’ 

SSLeay.c: In function ‘XS_Crypt__SSLeay__CTX_use_pkcs12_file’: 

SSLeay.c:326: warning: ‘RETVAL’ may be used uninitialized in this 
function
SSLeay.c:326: note: ‘RETVAL’ was declared here 

Running Mkbootstrap for Crypt::SSLeay () 

chmod 644 SSLeay.bs 

rm -f blib/arch/auto/Crypt/SSLeay/SSLeay.so 

gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
-fstack-protector --param=ssp-buffer-size=4 -m32 -march=i586 
-mtune=generic -fasynchronous-unwind-tables -DPERL_USE_SAFE_PUTENV 
-L/usr/local/lib SSLeay.o  -o blib/arch/auto/Crypt/SSLeay/SSLeay.so  \ 

            -L/usr/lib -lssl -lcrypto    \ 


chmod 755 blib/arch/auto/Crypt/SSLeay/SSLeay.so
cp SSLeay.bs blib/arch/auto/Crypt/SSLeay/SSLeay.bs
chmod 644 blib/arch/auto/Crypt/SSLeay/SSLeay.bs
Manifying blib/man3/Net::SSL.3pm
Manifying blib/man3/Crypt::SSLeay.3pm
   DLAND/Crypt-SSLeay-0.57.tar.gz
   /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" 
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-basic.t .... ok
t/01-connect.t .. ok
t/02-live.t ..... 1/4 # config on linux
# ssl OpenSSL 0.9.8 in /usr
# lib -L/usr/lib -lssl -lcrypto -lgcc
# inc -I/usr/include/openssl
# cc gcc
t/02-live.t ..... ok
All tests successful.
Files=3, Tests=24,  2 wallclock secs ( 0.12 usr  0.02 sys +  0.89 cusr 
0.09 csys =  1.12 CPU)
Result: PASS
   DLAND/Crypt-SSLeay-0.57.tar.gz
   /usr/bin/make test -- OK

cpan[8]>

The two deleted directories still didn't reappear :-) and Finance::Quote 
still doesn't work in Gnuash. Trying to install it again resulted in the 
following;
cpan[8]> install Crypt::SSLeay
Crypt::SSLeay is up to date (0.57).

SO, you're quite correct. Something is cocked up. BTW I get my quotes 
from ASX, Yahoo Australia so shouldn't need Crypt::SSLeay by rights.

Perhaps I should delete Finance::Quote and cpan and reinstall them. 
What do you think?

-- 
Kind regards,

Graeme Nichols.
...
Registered Linux User 381781 (http://counter.li.org/)
----------------------------------------------------------------------


More information about the gnucash-user mailing list