Subject: | perldoc command broken, 2 lines long proposed fix provided |
perldoc command doesn't find lynx and html2text correctly. I added
little bit of debugging and the following shows the problem:
cpan[1]> perldoc OpenOffice::OODoc
Debug(CPAN,CPAN.pm,273): line[perldoc|OpenOffice::OODoc]
Running perldoc for module 'OpenOffice::OODoc'
+ _display_url(http://search.cpan.org/perldoc?OpenOffice::OODoc)
/usr/bin/lynx
+ _check_binary(/usr/bin/lynx)
CPAN: File::Which loaded ok (v0.05)
File::Which installed. Looking for /usr/bin/lynx.
+ _check_binary(html2text.pl)
File::Which installed. Looking for html2text.pl.
You need to install lynx or html2text.pl to use this feature.
Since I do have both lynx and html2text installed, i tried:
perl -MFile::Which -e 'print File::Which::which("/usr/bin/lynx");'
again no result. However, when i tried:
perl -MFile::Which -e 'print File::Which::which("lynx");'
/usr/bin/lynx
Which reveals our problem: we're passing CPAN::config->{lynx} to
File:Which, in this case /usr/bin/lynx. Instead, what File::Which needs
is just the binary name on its own eg "lynx".
Problem is in:
#-> sub CPAN::Distribution::_display_url
In code:
my $web_browser = $CPAN::Config->{'lynx'} || undef;
$CPAN::Frontend->myprint(qq{$web_browser \n});
my $web_browser_out = $web_browser
? CPAN::Distribution->_check_binary($self,$web_browser)
: undef;
How we resolve it? Do we pass to File::Which only the binary name
(lynx), as opposed to whole path (/usr/bin/lynx)? That solves the
problem, at least on my machine (debian/unstable).
All i did is to replace:
my $web_browser = $CPAN::Config->{'lynx'} || undef;
with:
my ($volume,$directories,$file) = File::Spec->splitpath(
$CPAN::Config->{'lynx'} );
my $web_browser = $file || undef;
While looking at this, i had a look at CPAN bugs and realized that my
perldoc/recent additions caused some problems, as seen in #21791 and
#22893 . I'll have a look at HTML::Display and check whether it would be
a good replacement for lynx-via-File::Which path. By default,
HTML::Display on my laptop opens Konqueror, although i actually run
under Gnome. What i wanted with perldoc command is precisely the
opposite, to be able to remain in shell and still read documents
quickly, so that i can inspect module docs while installing them. I'll
do more checks on HTML::Display.
regards,
toni
Subject: | env.txt |
Linux giant 2.6.25-t1 #1 SMP Sun Apr 20 00:35:49 BST 2008 i686 GNU/Linux
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.22.10, archname=i486-linux-gnu-thread-multi
uname='linux ninsei 2.6.22.10 #1 smp preempt thu oct 25 08:49:01 pdt 2007 i686 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.8 -Dsitearch=/usr/local/lib/perl/5.8.8 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.8 -Dd_dosuid -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.2.3 20071014 (prerelease) (Debian 4.2.2-3)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=/lib/libc-2.6.1.so, so=so, useshrplib=true, libperl=libperl.so.5.8.8
gnulibc_version='2.6.1'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
Built under linux
Compiled at Nov 12 2007 06:07:55
@INC:
/etc/perl
/usr/local/lib/perl/5.8.8
/usr/local/share/perl/5.8.8
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
.