bugDatabase-driven manual pager suite - Bugs: bug #34811, BUG: whatis doesn't index Perl...

 
 

bug #34811: BUG: whatis doesn't index Perl module manpage; PATCH included

Submitted by:  None
Submitted on:  Sat 12 Nov 2011 10:53:24 PM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: Need Info
Privacy: PublicAssigned to: Colin Watson <cjwatson>
Open/Closed: Open

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 13 Nov 2011 02:10:43 PM UTC, comment #4:

'mandb -c', surely, not makewhatis? The latter is from a different implementation of man. It shouldn't take too desperately long to run though. (Your mention of makewhatis makes me wonder if some other implementation of apropos is interfering here ...)

As far as the lex scanner is concerned, that section is only handling special cases. Ordinary unbackslashed characters generally get passed straight through and don't need to be handled explicitly.

As far as whatis.c is concerned, the word-match code does allow only alphabetic characters and underscore, but as I say, that seems correct and shouldn't even be called normally anyway, so something is odd here and I'd like to know what before changing anything.

The nroff that we use is part of the groff package; it actually just calls groff with options to produce text output. As far as the input format is concerned, they're the same thing.

Colin Watson <cjwatson>
Project AdministratorIn charge of this item.
Sun 13 Nov 2011 02:17:49 AM UTC, comment #3:

Irk...
Reproducing will be a pain...i.e. will have to reinstall the broken version and rerun 'makewhatis'...and have it remake the db's, ...

Cuz now, there is nothing that doesn't show up that I'd expect.

I did the one you did below and came back with 43 entries....
whereas before...had none.

So Can you explain to me how the the code I submitted against (pre-patch could work, since it only allows alpha chars and underscore in the scanner. I admit to being VERY rusty in lex...many years since dabbled there, not to mention not knowing groff with a bleep....but doesn't man use nroff? isn't groff for graphical output?...
(dunno would have to look any and all of this up)...

Linda A. Walsh <law>
Sun 13 Nov 2011 12:40:11 AM UTC, comment #2:

Thanks for your report and patch!

The change to lexgrog.l seems incorrect to me. It adds code to interpret '\:' as a colon, but '\:' is a groff escape which inserts a zero-width break point, and that should not be treated as a colon by lexgrog. I don't recall ever seeing manual page authors using this as a mistake for ':'; even if they did, groff wouldn't render it the way they wanted anyway.

As for the change to whatis.c, I'm a bit confused. At first sight I thought that it was causing a colon to be treated as a word boundary, which would have been fair enough, but actually this patch does the exact opposite, which feels counterintuitive to me; the colon-separated parts of a Perl module name are different words as far as I'm concerned, at least for the purposes of searching. Also, I'm not quite clear on how you're invoking apropos that triggers this. apropos defaults to -r (--regex), so the functions you're patching in whatis.c should never be called.

I believe you that there is some problem, though (perhaps compounded by openSUSE apparently still using a rather old version of man-db; 2.5.2 dates from May 2008, and I've made ten releases since then, seven of which predate openSUSE 11.4), and I'd like to help track it down. Could you show me the apropos command you're running that demonstrates this problem, and also the full output of the same command with the --debug option added? Also, it would help if you could attach the raw contents of a sample manual page file that you expect to be found by apropos but isn't.

For comparison, on Debian unstable:

$ apropos extutils | head
ExtUtils::CBuilder (3perl) - Compile and link C code for Perl modules
ExtUtils::CBuilder (3pm) - Compile and link C code for Perl modules
ExtUtils::CBuilder::Platform::Windows (3perl) - Builder class for Windows pla...
ExtUtils::CBuilder::Platform::Windows (3pm) - Builder class for Windows platf...
ExtUtils::ParseXS (3perl) - converts Perl XS code into C code
ExtUtils::ParseXS (3pm) - converts Perl XS code into C code
Module::Build::Compat (3perl) - Compatibility with ExtUtils::MakeMaker
Module::Build::Compat (3pm) - Compatibility with ExtUtils::MakeMaker
ExtUtils::Command (3perl) - utilities to replace common UNIX commands in Make...
ExtUtils::Command::MM (3perl) - Commands for the MM's to use in Makefiles

... which seems reasonable enough to this Perl user.

Colin Watson <cjwatson>
Project AdministratorIn charge of this item.
Sat 12 Nov 2011 11:03:21 PM UTC, comment #1:

Sorry, this was a post by me...

I didn't realize I'd been logged out... I checked when I got
to savannah, and saw logged in, but then didn't realize the
sitename had switched thus forcing a need to relogin...

Oops.

Linda A. Walsh <law>
Sat 12 Nov 2011 10:53:24 PM UTC, original submission:

even though I have a fair number of perl modules to solve
problems, I can never remember their names/capitalization, etc. With most langs, I can use "apropos"..whatever, and have my answer, but apropos has been shutting out perl. :-(

It didn't seem to realize that ':' was allowed in a library routine name...(imagine that!??)...

Anyway, the attached, patch (2 files, 3 lines modified/expanded) addresses the problem.

If you could fix this in some 'soon' upcoming release, I'm sure
perl users worldwide would be appreciative!

thanks...

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #24364:  perlman.diff added by None (1kB - application/octet-stream - patch against man-db 2.5.2 (as patched from suse11.4 source rpms))

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by cjwatson (Posted a comment)
  • -unavailable- added by law (Posted a comment)
  • -unavailable- added by law (Linda Walsh)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 13 Nov 2011 12:40:11 AM UTCcjwatsonStatusNone=>Need Info
      Assigned toNone=>cjwatson
    Sat 12 Nov 2011 11:03:21 PM UTClawCarbon-Copy-=>Added -unavailable-
    Sat 12 Nov 2011 10:53:24 PM UTCNoneAttached File-=>Added perlman.diff, #24364

    Back to the top


    Powered by Savane 3.1-cleanup