Mail Archives: cygwin/2009/03/16/20:14:38
It took a while to track this down, but the issue is in ncurses'
internal mechanisms for installing man pages. Basically, it's too clever
for its own good.
Simple packages do this:
I have man page. I put man page in mandir. The end.
/usr/share/man/man1/foo.1
Sometimes, they might have aliases implemented via symlinks, so that
'man bar' gets you the same text as 'man foo':
/usr/share/man/man1/foo.1
/usr/share/man/man1/bar.1 -> foo.1
cygport comes along and looks for symlinks in the mandir, figures out
what the target is, removes the symlink and replaces it with a file with
content:
.so foo.1
Then, cygport gzips all the files, leaving
/usr/share/man/man1/foo.1.gz
/usr/share/man/man1/bar.1.gz (not a symlink)
This works fine. ncurses tries to do something similar, except it
parses the man pages themselves for all entries in the NAME section, and
creates the stub files (.so target) for each of them manually. AND
optionally gzips, compresses, nroffs, and tbls them, installing each to
different hierarchies under /usr/share/man, depending on 27 different
configure arguments.
It got a little confused.
(What's odd is I didn't specify any of those 27 configure arguments; I
just wanted it to do the same thing I always do: --with-manpage-symlinks
(e.g. don't monkey around with .so files; just use symlinks [and I'll
let cygport do the heavy lifting]).
This worked in 5.5...but not, apparently, 5.7.
It will be a while until I get around to respining ncurses AGAIN, so in
the meantime, this should fix it:
#!/bin/sh
find /usr/share/man -type f -name "*.gz" |\
xargs file | grep 'ASCII troff' | awk -F: '{print $1}' |\
while read F ; do
B=${F%%.gz}
mv ${F} ${B}
gzip ${B}
done
--
Chuck
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -