Currently, some packages install their man pages in a compressed format (.gz), while some install them uncompressed. Since the current version of man can handle compressed man files transparently, it's just a waste of space to install uncompressed man pages (especially since compressing them `by hand' makes rpm -V spew tons of errors...) I've been using a wrapper aroung rpm -V to produce a complete `system integrity' report once a week, so I can throw in a fix for this anomaly, but it's a mess upgrading. What I suggest is to add a tool that will traverse a man tree and replace soft- and hard- links with `logical' links (i.e., files of the form `.so manX/Yada.X'), and have the build script of each rpm invoke this tool on the new package's man tree, and then compress the result. It's worth it! (PS: I already have such a tool... Now all bow down three times and bless Larry Wall for Perl ;-)
I would suggest adding a %man directive to rpm (analogous to %doc directive) that would make sure that the man page has right format, right permissions and put it into the right place.
This will be handled later by a new verson of rpm. It is not going to happen for 6.0, though.
Forgot to assign to jbj
Nor is it going to happen for 6.1. It will be implemented in rpm so I'm changing the component.
My proposal to this issue is to represent properties of hardware-platform, operating system, distribution, and other [OO-]classes by sets of macros. E.g. for manpage compression, I use the definitions %Distribution__man_compressor gzip %Distribution__compress_manpages find $RPM_BUILD_ROOT/ -type 'f'| grep -E '.*[0-9]($|x)' | xargs file | grep roff | cut -d: -f1 | xargs %{Distribution__man_compressor} in my macro files, where ``man_compressor'' is an attribute of the object of the ``Distribution'' class, which is instantiated in my rpm-environment and ``compress_manpages'' is a method. /*Unfortunately, I had to use the ``__'' as delimiter between class name and feature; I had preferred to use the ``.'', but rpm is not able to handle macro names with a ``.'' in it.*/ In later parts of my %install section, I use then the method call to my Distribution object: %{Distribution__compress_manpages} , which does the compression job then. The big advantage of that is, that everybody only has to instantiate the platform, os and distribution objects of his environment with the desired parameters and a specfile based on that standard will automatically do the right job. If you are at all interested to make rpm a package manager, which is also helpful in other environments than Redhat-only, such a more global viewpoint will certainly be advantageous. Bye, Markus
rpm have been doing this for quite a while now. Reopening to mark as really closed.