Bug 1249377

Summary: man 1 man: EXAMPLES: As documented "man -f smail" is not same as "whatis -r smail"
Product: [Fedora] Fedora Reporter: Sumit Rai <sumitrai96>
Component: man-dbAssignee: Nikola Forró <nforro>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: 21CC: cjwatson, jchaloup, nforro
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: man-db-2.6.7.1-16.fc21 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-12 07:04:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sumit Rai 2015-08-02 07:05:48 UTC
Description of problem: "man 1 man" manpage says in EXAMPLES section "man -f smail" is same as "whatis -r smail". This is not correct as:
1. "man -f smail" is same as "whatis smail" and not "whatis -r smail" i.e. it prints one line description if "smail" matches exactly name of a manual page with word boundaries.
2. "whatis -r smail" is not same as "man -f smail" as it prints description of all manual pages whose name match "smail" as any part and world boundaries are not considered.


Version-Release number of selected component (if applicable):
man-db-2.6.7.1-15.fc21.x86_64

How reproducible:
Easily reproducible.

Steps to Reproduce:
1. On shell type "man 1 man" without quotes.
2. Jump to "EXAMPLES" section.
3. Scroll down to reach "man -f smail" and read the example which says
"man -f smail
           Lookup the manual pages referenced by smail and print out the short descriptions of any found.  Equivalent to whatis -r smail.
4. Now to test if "man -f smail" and "whatis -r smail" are equivalent go to bash prompt.
5. Type "man -f ls" w/o quotes.
6. Type "whatis ls" w/o quotes.
7. Type "whatis -r ls" w/o quotes.

Actual results:
"man -f" is equivalent to "whatis" and not "whatis -r"

Expected results:
The results on the commandline must match the documentation.

Additional info:
[srai@localhost ~]$ man -f ls
man -f ls
ls (1p)              - list directory contents
ls (1)               - list directory contents
[srai@localhost ~]$ whatis ls
ls (1p)              - list directory contents
ls (1)               - list directory contents
[srai@localhost ~]$ whatis -r ls
_llseek (2)          - reposition read/write file offset
alsactl (1)          - advanced controls for ALSA soundcard driver
alsactl_init (7)     - alsa control management - initialization
alsaloop (1)         - command-line PCM loopback
alsamixer (1)        - soundcard mixer for ALSA soundcard driver, with ncurses interface
alsaunmute (1)       - a simple script to initialize ALSA sound devices
backtrace_symbols (3) - support for application self-debugging
backtrace_symbols_fd (3) - support for application self-debugging
credentials (7)      - process identifiers
dlsym (3)            - programming interface to dynamic linking loader
dlsym (3p)           - get the address of a symbol from a symbol table handle
ExtUtils::Command (3pm) - utilities to replace common UNIX commands in Makefiles etc.
ExtUtils::Constant (3pm) - generate XS code to import C header constants
ExtUtils::Constant::Base (3pm) - base class for ExtUtils::Constant objects
ExtUtils::Constant::Utils (3pm) - helper functions for ExtUtils::Constant
ExtUtils::Constant::XS (3pm) - generate C code for XS modules' constants.
ExtUtils::Miniperl (3pm) - write the C code for perlmain.c
ExtUtils::XSSymSet (3pm) - keep sets of symbol names palatable to the VMS linker
failsafe_context (5) - The SELinux fail safe context configuration file
false (1)            - do nothing, unsuccessfully
false (1p)           - return false value
gnutls-cli (1)       - GnuTLS client
gnutls-cli-debug (1) - GnuTLS debug client
gnutls-serv (1)      - GnuTLS server
fcrls (8)            - Fibre Channel Read Link Error Status Block (RLS) tool
git-ls-files (1)     - Show information about files in the index and the working tree
git-ls-remote (1)    - List references in a remote repository
git-ls-tree (1)      - List the contents of a tree object
git-mailsplit (1)    - Simple UNIX mbox splitter program
gitcredentials (7)   - providing usernames and passwords to Git
gvfs-ls (1)          - List files
h5ls (1)             - Prints information about a file or dataset.
IO::Socket::SSL::Utils (3pm) - - loading, storing, creating certificates and keys
keyutils (7)         - In-kernel key management utilities
llseek (2)           - reposition read/write file offset
ls (1)               - list directory contents
ls (1p)              - list directory contents
lsattr (1)           - list file attributes on a Linux second extended file system
lsblk (8)            - list block devices
lscpu (1)            - display information about the CPU architecture
lsearch (3)          - linear search of an array
lsearch (3p)         - linear search and update
lsearch (n)          - See if a list contains a particular element
lseek (2)            - reposition read/write file offset
lseek (3p)           - move the read/write file offset
lseek64 (3)          - reposition 64-bit read/write file offset
lset (n)             - Change an element in a list
lsetxattr (2)        - set an extended attribute value
lsinitrd (1)         - tool to show the contents of an initramfs image
lslocks (8)          - list local system locks
lslogins (1)         - display information about known users in the system
lsmod (8)            - Show the status of modules in the Linux Kernel
lsof (8)             - list open files
lsort (n)            - Sort the elements of a list
lspci (8)            - list all PCI devices
lspcmcia (8)         - display extended PCMCIA debugging information
lstat (2)            - get file status
lstat (3p)           - get file status
lstat64 (2)          - get file status
lsusb (8)            - list USB devices
Module::CoreList::Utils (3pm) - what utilities shipped with versions of perl
mtools (1)           - utilities to access DOS disks in Unix.
mtools (5)           - mtools configuration files
mtools.conf (5)      - mtools configuration files
mtoolstest (1)       - tests and displays the configuration
mysqlshow (1)        - display database, table, and column information
mysqlslap (1)        - load emulation client
ntfsls (8)           - list directory contents on an NTFS filesystem
oldlstat (2)         - get file status
oLschema2ldif (1)    - Converts LDAP schema's to LDB-compatible LDIF
pam_shells (8)       - PAM module to check for valid login shell
perlsec (1)          - Perl security
perlsolaris (1)      - Perl version 5 on Solaris systems
perlsource (1)       - A guide to the Perl source tree
perlstyle (1)        - Perl style guide
perlsub (1)          - Perl subroutines
perlsymbian (1)      - Perl version 5 on Symbian OS
perlsyn (1)          - Perl syntax
pm-utils-bugreport-info.sh (8) - Print pm-utils bug report
protocols (5)        - protocols definition file
pthread_setcancelstate (3) - set cancelability state and type
pthread_setcancelstate (3p) - set cancelability state
pulse-cli-syntax (5) - PulseAudio Command Line Interface Syntax
pulse-client.conf (5) - PulseAudio client configuration file
pulse-daemon.conf (5) - PulseAudio daemon configuration file
pulseaudio (1)       - The PulseAudio Sound System
qrls (1p)            - release batch jobs
sane-coolscan (5)    - SANE backend for Nikon film-scanners
sane-coolscan2 (5)   - SANE backend for Nikon Coolscan film scanners
sane-coolscan3 (5)   - SANE backend for Nikon Coolscan film scanners
shells (5)           - pathnames of valid login shells
sigdelset (3)        - POSIX signal set operations
sigdelset (3p)       - delete a signal from a signal set
sigfillset (3)       - POSIX signal set operations
sigfillset (3p)      - initialize and fill a signal set
sigrelse (3)         - System V signal API
sigrelse (3p)        - signal management
smbcacls (1)         - Set or get ACLs on an NT file or directory names
start-pulseaudio-x11 (1) - PulseAudio Sound Server X11 Startup Script
syscalls (2)         - Linux system calls
systemd-cgls (1)     - Recursively show control group contents
tc-cbq-details (8)   - Class Based Queueing
Tcl_ChannelSeekProc (3) - procedures for creating and manipulating channels
Tcl_ChannelSetOptionProc (3) - procedures for creating and manipulating channels
Tcl_FSLstat (3)      - procedures to interact with any filesystem
Tcl_IsChannelShared (3) - procedures for creating and manipulating channels
Tcl_StandardChannels (3) - How the Tcl library deals with the standard channels
tclsh (1)            - Simple shell containing Tcl interpreter
version::Internals (3pm) - Perl extension for Version Objects
xlsatoms (1)         - list interned atoms defined on server
xlsclients (1)       - list client applications running on a display
xlsfonts (1)         - server font list displayer for X
yum-utils (1)        - tools for manipulating repositories and extended package management
zipdetails (1)       - display the internal structure of zip files

Comment 1 Colin Watson 2015-08-02 15:35:38 UTC
Thanks for the report.  Fixed upstream:

  http://git.savannah.gnu.org/cgit/man-db.git/commit/?id=4fee655dc6a8b31f0b5979e83bc1e8a0f3dcf303

Comment 2 Nikola Forró 2015-08-04 11:33:02 UTC
Thanks for the fix Colin.

Comment 3 Fedora Update System 2015-08-05 06:43:51 UTC
man-db-2.7.1-8.fc23 has been submitted as an update for Fedora 23.
https://admin.fedoraproject.org/updates/man-db-2.7.1-8.fc23

Comment 4 Fedora Update System 2015-08-05 06:45:44 UTC
man-db-2.7.1-7.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/man-db-2.7.1-7.fc22

Comment 5 Fedora Update System 2015-08-05 06:48:30 UTC
man-db-2.6.7.1-16.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/man-db-2.6.7.1-16.fc21

Comment 7 Fedora Update System 2015-08-07 12:53:55 UTC
Package man-db-2.6.7.1-16.fc21:
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing man-db-2.6.7.1-16.fc21'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-12904/man-db-2.6.7.1-16.fc21
then log in and leave karma (feedback).

Comment 8 Fedora Update System 2015-08-12 07:03:47 UTC
man-db-2.7.1-7.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2015-08-12 07:04:40 UTC
man-db-2.6.7.1-16.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2015-08-15 02:17:18 UTC
man-db-2.7.1-8.fc23 has been pushed to the Fedora 23 stable repository.  If problems still persist, please make note of it in this bug report.