Subject: Re: bug#30785: Man pages truncated, repeated

From: Pierre Neidhardt <[email-masked]>
Date: Sun, 13 Jan 2019 18:31:10 +0100

Indeed.  So the reason that there is an issue at all is that man-db uses
libpipeline to run a pipeline of programs.

I've used Ludo's trick to see if could get more details:

--8<---------------cut here---------------start------------->8---
ambrevar@mimimi ~/projects/guix/gnu/packages$ PIPELINE_DEBUG=1 /gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/bin/man emacs
Starting pipeline: /gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip -dc /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz [input: {0, /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz}, output: {-1, NULL}]
Started "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip", pid 13814
Waiting for pipeline: /gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip -dc /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz [input: {0, /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz}, output: {-1, NULL}]
Active processes (1):
  "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip" (13814) -> 0
Starting pipeline: /gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip -dc /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz [input: {0, /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz}, output: {-1, NULL}]
Started "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip", pid 13815
Waiting for pipeline: /gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip -dc /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz [input: {0, /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz}, output: {-1, NULL}]
Active processes (1):
  "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip" (13815) -> -1
Active processes (1):
  "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip" (13815) -> 0
Starting pipeline: /gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip -dc /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz [input: {0, /gnu/store/gppr8msvzgxr87psbj3w6hc07lnnzpvx-emacs-26.1/share/man/man1/emacs.1.gz}, output: {-1, NULL}]
Started "/gnu/store/h0c398zan9ibhk4w0c944vp5pwgzkfpd-gzip-1.9/bin/gzip", pid 13816
Starting pipeline: (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/zsoelim) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/preconv -e UTF-8) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/tbl) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/nroff -mandoc -Tutf8) [input: {-1, NULL}, output: {-1, NULL}]
Started "/gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/zsoelim", pid 13817
Started "/gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE", pid 13818
Started "/gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/preconv", pid 13819
Started "/gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/tbl", pid 13820
Started "/gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/nroff", pid 13821
Starting pipeline: sed -e '/^[[:space:]]*$/{ N; /^[[:space:]]*\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual page emacs(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page emacs(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ MAN_PN=emacs(1) less -s [input: {-1, NULL}, output: {0, NULL}]
Started "sed -e '/^[[:space:]]*$/{ N; /^[[:space:]]*\n[[:space:]]*$/D; }'", pid 13822
Started "less", pid 13823
source pipeline 0 returned error or EOF
Active processes (1):
  "less" (13823) -> 0
/gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/bin/man: command exited with status 127: (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/zsoelim) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/fm7jlkf93bh7bw03m8hbha2b5qxjz0kz-man-db-2.8.3/libexec/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/preconv -e UTF-8) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/tbl) | (cd /home/ambrevar/.guix-profile/share/man && /gnu/store/mpjn4jfx5i8jxblfj538n22hv56rdnhw-groff-minimal-1.22.3/bin/nroff -mandoc -Tutf8)
--8<---------------cut here---------------end--------------->8---

I'm not sure this tells us much.

From libpipeline's documentation
(http://libpipeline.nongnu.org/libpipeline.3.html), it seems that libpipeline
accepts "program names", and it's unclear to me if it accepts full paths (would
be weird, but we never know).

If we can't figure it out, a workaround would be to wrap "man" to add
groff-minimal to PATH.

Thoughts?

-- 
Pierre Neidhardt
https://ambrevar.xyz/