Public bug reported:

Hello, I wanted to search the systemd.exec(5) manpage for an opening
brace character, {, in a manner that would be easy to copy-and-paste the
results if there were any. This unfortunately gives an error message:

$ MANPAGER="grep -F {" man systemd.exec
man: command exited with status 1: sed -e '/^[[:space:]]*$/{ N; 
/^[[:space:]]*\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual page 
systemd\.exec(5) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h 
for help or q to quit)$PM Manual page systemd\.exec(5) ?ltline %lt?L/%L.:byte 
%bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ 
MAN_PN=systemd\.exec(5) grep -F {
$ MANPAGER="grep -F {" man apparmor
               profile foo flags=(audit) { ... }
$ 

It works fine on a simple example, apparmor(7). Other patterns work with
systemd.exec(5):

$ MANPAGER="grep -F aa" man systemd.exec
               StateDirectory=aaa/bbb ccc
           then the environment variable "RUNTIME_DIRECTORY" is set with 
"/run/foo/bar", and "STATE_DIRECTORY" is set with 
"/var/lib/aaa/bbb:/var/lib/ccc".
$ 

Thus I think when the pager doesn't provide any output we get an ugly
error message. I expected no output at all if the pattern doesn't match.

Thanks

And now the --debug output:

$ MANPAGER="grep -F {" man --debug -s 5 systemd.exec
ruid=1000, euid=1000
rgid=1000, egid=1000
++priv_drop_count = 1
>From the config file /etc/manpath.config:
  Mandatory mandir `/usr/man'.
  Mandatory mandir `/usr/share/man'.
  Mandatory mandir `/usr/local/share/man'.
  Path `/bin' mapped to mandir `/usr/share/man'.
  Path `/usr/bin' mapped to mandir `/usr/share/man'.
  Path `/sbin' mapped to mandir `/usr/share/man'.
  Path `/usr/sbin' mapped to mandir `/usr/share/man'.
  Path `/usr/local/bin' mapped to mandir `/usr/local/man'.
  Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.
  Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.
  Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.
  Path `/usr/X11R6/bin' mapped to mandir `/usr/X11R6/man'.
  Path `/usr/bin/X11' mapped to mandir `/usr/X11R6/man'.
  Path `/usr/games' mapped to mandir `/usr/share/man'.
  Path `/opt/bin' mapped to mandir `/opt/man'.
  Path `/opt/sbin' mapped to mandir `/opt/man'.
  Global mandir `/usr/man', catdir `/var/cache/man/fsstnd'.
  Global mandir `/usr/share/man', catdir `/var/cache/man'.
  Global mandir `/usr/local/man', catdir `/var/cache/man/oldlocal'.
  Global mandir `/usr/local/share/man', catdir `/var/cache/man/local'.
  Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.
  Global mandir `/opt/man', catdir `/var/cache/man/opt'.
  Global mandir `/snap/man', catdir `/var/cache/man/snap'.
  Added sections: `1', `n', `l', `8', `3', `2', `3posix', `3pm', `3perl', 
`3am', `5', `4', `9', `6', `7'.
is a tty
using grep -F { as pager
path directory /home/sarnold/bin is not in the config file
path directory /usr/local/sbin is in the config file
  adding /usr/local/man to manpath
  adding /usr/local/share/man to manpath
path directory /usr/local/bin is in the config file
path directory /usr/sbin is in the config file
  adding /usr/share/man to manpath
path directory /usr/bin is in the config file
path directory /sbin is in the config file
path directory /bin is in the config file
path directory /usr/games is in the config file
path directory /usr/local/games is not in the config file
path directory /snap/bin is not in the config file
adding mandatory man directories
warning: /usr/man: No such file or directory
add_nls_manpaths(): processing 
/usr/local/man:/usr/local/share/man:/usr/share/man
checking for locale en_US.UTF-8
adding /usr/local/man to manpathlist
adding /usr/share/man to manpathlist
final search path = /usr/local/man:/usr/share/man
--priv_drop_count = 0
searching in /usr/local/man, section 5
trying section 5 with globbing
Layout is GNU (1)
update_directory_cache /usr/local/man: miss
globbing pattern in /usr/local/man: man5*
update_directory_cache /usr/local/man: hit
globbing pattern in /usr/local/man: cat5*
Failed to open /var/cache/man/oldlocal/index.db O_RDONLY
searching in /usr/share/man, section 5
trying section 5 with globbing
update_directory_cache /usr/share/man: miss
globbing pattern in /usr/share/man: man5*
matched: /usr/share/man/man5
update_directory_cache /usr/share/man/man5: miss
globbing pattern in /usr/share/man/man5: systemd.exec.5*
matched: /usr/share/man/man5/systemd.exec.5.gz

ult_src: File /usr/share/man/man5/systemd.exec.5.gz in mantree /usr/share/man
loading seccomp filter (permissive: 0)
candidate: 0 0 systemd.exec /usr/share/man 
/usr/share/man/man5/systemd.exec.5.gz A - 5 5
Checking physical location: /usr/share/man/man5/systemd.exec.5.gz

ult_src: File /usr/share/man/man5/systemd.exec.5.gz in mantree /usr/share/man
loading seccomp filter (permissive: 0)
found ultimate source file /usr/share/man/man5/systemd.exec.5.gz
converted /usr/share/man/man5/systemd.exec.5.gz to 
/usr/share/man/cat5/systemd.exec.5.gz
is_changed: a=/usr/share/man/man5/systemd.exec.5.gz, 
b=/usr/share/man/cat5/systemd.exec.5.gz (-2)
converted /var/cache/man/cat5/systemd.exec.5.gz to 
/var/cache/man/cat5/systemd.exec.5.gz
will try cat file /var/cache/man/cat5/systemd.exec.5.gz
loading seccomp filter (permissive: 0)
pre-processors `t' from file
page_encoding = ISO-8859-1
source_encoding = ISO-8859-1
locale_charset = UTF-8
roff_device (locale) = utf8
roff_encoding = ISO-8859-1
output_encoding = UTF-8
less_charset = utf-8
Terminal width 172
Terminal width 172 not within cat page range [80, 80]
Using 167-character lines
formatted_encoding = UTF-8
format: 1, save_cat: 0, found: 1
add_output_iconv: source UTF-8, target UTF-8
Setting LESS to -ix8RmPm Manual page systemd\.exec(5) ?ltline %lt?L/%L.:byte 
%bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page 
systemd\.exec(5) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h 
for help or q to quit)$
Setting MAN_PN to systemd\.exec(5)
++priv_drop_count = 1
man: command exited with status 1: sed -e '/^[[:space:]]*$/{ N; 
/^[[:space:]]*\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual page 
systemd\.exec(5) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h 
for help or q to quit)$PM Manual page systemd\.exec(5) ?ltline %lt?L/%L.:byte 
%bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ 
MAN_PN=systemd\.exec(5) grep -F {
$

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: man-db 2.9.1-1
ProcVersionSignature: Ubuntu 5.4.0-74.83-generic 5.4.114
Uname: Linux 5.4.0-74-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu27.18
Architecture: amd64
CasperMD5CheckResult: skip
Date: Wed Jun 16 00:15:22 2021
SourcePackage: man-db
UpgradeStatus: Upgraded to focal on 2020-01-24 (508 days ago)

** Affects: man-db (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug focal

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1932084

Title:
  MANPAGER="grep -F {" man systemd.exec leads to man: command exited
  with status 1: sed -e ...

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/man-db/+bug/1932084/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to