Bug 11979
Summary: | rpm ignores excludepath on some packages | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | peter.benie |
Component: | rpm | Assignee: | Jeff Johnson <jbj> |
Status: | CLOSED DUPLICATE | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 6.2 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2000-10-04 17:33:04 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
peter.benie
2000-06-08 13:18:21 UTC
If you have a package that includes /usr/doc/foo, but not /usr/doc (eg. make-3.78.1-4.i386.rpm), then rpm ignores --excludepath /usr/doc. The logic in rpm is a little strange. Again, this is in relocateFileList: 1) Create skipDirlist[], initialised to NULLs. 2) Interate over files, honouring skipDirList[]. Set skipDirList[i] if the filename in an RPM exactly matches a redirect and is an excluded directory. (Never happens for make-3.78.1-4.) 3) Iterate over directories. Set skipDirList[i] if the directory is excluded. 4) Throw skipDirList[] away. The effect is that while the debug messages from (3) say that /usr/doc/foo is excluded, the information about which directories are excluded is thrown away before being used. The comments in relocateFileList() imply that (1) and (2) used to be in the opposite order, which makes sense for skipDirList(). I have tried to use the "--excludepath /usr/share/doc" with quite a few RH7's packages on a new Redhat 7 system. The rpm still install the documents in the /usr/share/doc directory. If I use the "--excludepath /usr/doc", the rpm will install the documentations in the /usr/doc directory instead of /usr/share/doc directory. |