Bug 996 - Manual pages should all be compressed
Summary: Manual pages should all be compressed
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: rpm
Version: 5.2
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 1999-01-30 15:14 UTC by Ziv, Alon
Modified: 2008-05-01 15:37 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2002-05-02 14:02:39 UTC

Attachments (Terms of Use)

Description Ziv, Alon 1999-01-30 15:14:21 UTC
Currently, some packages install their man pages in a
compressed format (.gz), while some install them
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 ;-)

Comment 1 Aleksey Nogin 1999-04-01 21:18:59 UTC
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.

Comment 2 Cristian Gafton 1999-04-07 20:24:59 UTC
This will be handled later by a new verson of rpm. It is not going to
happen for 6.0, though.

Comment 3 Cristian Gafton 1999-06-17 16:45:59 UTC
Forgot to assign to jbj

Comment 4 Jeff Johnson 1999-09-02 16:49:59 UTC
Nor is it going to happen for 6.1. It will be implemented in rpm
so I'm changing the component.

Comment 5 mp 1999-12-07 17:10:59 UTC
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

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:


, 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.



Comment 6 Aleksey Nogin 2002-05-02 14:02:34 UTC
rpm have been doing this for quite a while now. Reopening to mark as really closed.

Note You need to log in before you can comment on or make changes to this bug.