Bug 17372 - RPM brc-compress breaks things
RPM brc-compress breaks things
Status: CLOSED WONTFIX
Product: Red Hat Linux
Classification: Retired
Component: rpm (Show other bugs)
6.2
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jeff Johnson
:
: 17773 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2000-09-08 19:25 EDT by eric_backus
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2000-09-08 19:25:56 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description eric_backus 2000-09-08 19:25:54 EDT
I downloaded the latest RPM-3.0.5-9.6x, and this package breaks several
things.  This version of RPM calls "brc-compress" as part of the process
of building a build-rooted binary RPM.  The brc-compress script converts
any man pages or info files in the package into compressed versions.

This sounds like a good idea, but it breaks some things:

  * A package like ssh-1.2.30, which explicitly lists its manual pages in
    the spec file %files list, can't be built anymore.  This is because
    the file list no longer matches what the build produces.  In other
    words, the file list says there is a /usr/man/man1/ssh.1, but what's
    really there is /usr/man/man1/ssh.1.gz.  RPM refuses to build the
    binary RPM because of this.  I suppose you could ultimately fix this
    by making RPM know about brp-compress and account for it when looking
    at file lists, but that seems a little ugly.

  * Manual pages may sometimes explicitly load another manual page.  For
    example, latin1.7 loads iso-8859-1.7, by including the text
    ".so iso-8859-1.7" in the latin1.7 man page.  This stops working when
    iso-8859-1.7 is replaced by iso-8859-1.7.gz.  You can't fix this
    one easily - unless you want to redefine how the long-established
    nroff/troff/groff macros work.

In the end, I think you have to turn off brp-compress.
Comment 1 Jeff Johnson 2000-09-14 12:20:55 EDT
rpm is shipped with the same default configuration that is used to build Red Hat
packages.
You can either
	0) Use rpm-3.0.4 or earlier to build.

	1) Add a * at the end of each man page listed in the ssh %files

	2)  Change your build configuration. For example,
		mkdir -p /etc/rpm
		echo "%__spec_install_post	/bin/true" >> /etc/rpm/macros
	    will turn off all Red Hat build policies.

FWIW, man already handles .so diversions correctly for compressed files.
Comment 2 eric_backus 2000-09-16 03:35:55 EDT
I have to disagree with several of your points:

1. Rpm is NOT shipped with the same default configuration that was used to build
   RedHat.  The latest update to RPM changes the default configuration from what
   it was on Red Hat 6.2.  Previously, it did not do brc-compress, now it does.

2. You suggest going back to rpm 3.0.4 to work around the problem, but I was
   required to update to 3.0.5 in order to install the Red Hat 6.2 updates,
   which are necessary to keep my system secure.

3. As you suggest, I can add a "*" to each man page listed in the files section
   of the ssh spec file.  But this is a spec file that has always worked in the
   past.  How many other people will have to make the same modification to a
   known-good spec file, to make it work again?  How many other packages will
   be affected similarly?  This change to RPM is not documented in any way that
   I can find, so each person will end up wasting time tracking this down like
   I did.

4. As you suggest, I can change the build configuration by modifying
   __spec_install_post.  Of course, that loses the other, benign, things that
   the default __spec_install_post does.  And again, this is not documented
   anywhere, so for all I know it will break again on rpm 3.0.6.

5. I can only conclude that you didn't actually try typing "man latin1".  Yes,
   the man program itself knows to gunzip a compressed man page before handing
   it to nroff.  But a man page that contains a .so diversion is being 
   interpreted by nroff directly.  Nroff doesn't handle gzipped files, so a .so 
   diversion fails if the file it points to is gzipped.  I'll admit that man
   pages that make use of this are relatively rare, and probably should be
   migrated to just use symbolic links where possible.  Nevertheless, this
   *is* something that brc-compress breaks.
Comment 3 Jeff Johnson 2000-09-22 07:28:33 EDT
*** Bug 17773 has been marked as a duplicate of this bug. ***

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