Bug 68933

Summary: rpm -V XFree86-base-fonts-4.2.0-8 has missing files
Product: [Retired] Red Hat Linux Reporter: Chris Rouch <cro>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: gczarcinski, jbj, jik
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-07-24 12:53:50 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 Chris Rouch 2002-07-16 07:46:09 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.2.5 (X11; Linux i686; U;) Gecko/0

Description of problem:
I just upgraded all the XFree86 rpms to 4.2.0. Running rpm -V on them afterwards
results in:

# rpm -V XFree86-base-fonts
missing    /usr/X11R6/lib/X11/fonts/100dpi/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/75dpi/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/Speedo/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/Type1/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/local/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/local/fonts.dir
missing    /usr/X11R6/lib/X11/fonts/misc/encodings.dir


Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.rpm -V XFree86-base-fonts
2.
3.
	

Actual Results:  missing    /usr/X11R6/lib/X11/fonts/100dpi/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/75dpi/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/Speedo/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/Type1/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/local/encodings.dir
missing    /usr/X11R6/lib/X11/fonts/local/fonts.dir
missing    /usr/X11R6/lib/X11/fonts/misc/encodings.dir


Expected Results:  No output

Additional info:

These are the rpms from a 7.3 CD; However they are installed on a system that
was running 7.2+updates. All dependencies were satisfied during the  installation.

Comment 1 Mike A. Harris 2002-07-16 09:42:01 UTC
ALL of those files are intentionally missing.  They are "ghost" files.
This means that the files are not provided by the package that owns them.
They are either generated at installation time during %post script handling,
or the files are optionally created by the end-user, or by some other
software.  The intent is that "if this file exists, then this package owns
it, but if the file does not exist, that is fine".

Why they show up as missing is a mystery.  I'm not sure if this should
be considered a bug or not, and if it is a bug, if it is a bug in RPM, or
if some flag is missing from the XFree86.spec file.

I'll investigate it further before resolving.

Thanks.

Comment 2 Mike A. Harris 2002-07-18 08:01:54 UTC
I've investigated this, and have emailed jbj to get an idea
of how we might resolve these files as showing up as missing since they
are not provided in the first place, and it is legal for them to not
exist.  Generally such files would be flagged %config(missingok) however
it is not a config file, and so it isn't ok to flag it as %config, since
having versions of the file named .rpmsave or .rpmnew is both ugly,
meaningless, and causes problems.

If only %verify had a (not exist) flag.


Comment 3 Mike A. Harris 2002-07-18 08:04:05 UTC
I just got this suggestion from Nils:

<nils> mharris: make the package not own it and do:
<nils> %post if [ "$1" = 0 ]; then rm -f /path/to/file; fi

That is another possibility.  I'll wait for more feedback first however.

Comment 4 Mike A. Harris 2002-07-24 05:28:41 UTC
*** Bug 69614 has been marked as a duplicate of this bug. ***

Comment 5 Mike A. Harris 2002-07-24 05:34:07 UTC
More and more people are reporting this.  I'm not sure what the best
approach is to solve the problem.

Technically speaking, these "missing" files, are missing on purpose. They
are "optional" files that do not exist during installation, but which
a user may opt to create, or which may be created by something else during
normal system operation, depending on how commands are invoked.

fonts.alias files for example are a valid file which *could* exist in any
font directory.  We do not ship these files in every directory however,
if a user creates one, it should IMHO be owned by the package that owns
that directory.

If it is owned, it can be properly removed upon package removal, etc.

The only alternative I can think of, is to remove ownership of these
non supplied files from the packaging, and just blatantly delete any
such files that might be installed during %postun processing.

It is ok to leave fonts.alias files around in many cases, but encodings.dir
files can cause some weird problems sometimes.

I'm going to leave this issue open a bit longer before making my final
decision on it.

Note that this also occurs in our current beta release (Limbo) and rawhide
as well.

Comment 6 Gene Czarcinski 2002-07-24 07:13:29 UTC
Question:  if a user changes a package supplied configuration file is it deleted
or left when the package is deleted?  ... do a releated thing here.

Suggestion:  remove these files from package ownership and then delete or rename
them (*.rpmsave) as appropriate in postun

Comment 7 Mike A. Harris 2002-07-24 09:18:46 UTC
*** Bug 68781 has been marked as a duplicate of this bug. ***

Comment 8 Jeff Johnson 2002-07-24 12:53:46 UTC
Hmmm, I can imbue %ghost with missingok semantics,
that will take care of the noise on --verify, at
least for rpm-4.1.

I'm loathe to add %config semantics to %ghost (i.e. renaming .rpmfoo
on erasure and such) as I don't believe that rpm can possibly
get it right for a file that, indeed, was not contained in the
package, %ghost was originally intended to insure that permissions on
log files were correct, nothing more.

Off to rpm for a fix

Comment 9 Jeff Johnson 2002-07-24 16:14:29 UTC
OK, rpm patch is trivial. Here's the output that will be
displayed by rpm-4.1-0.54:

bash$ rpm -Vv XFree86-base-fonts
missing  g /usr/X11R6/lib/X11/fonts/100dpi/encodings.dir
missing  g /usr/X11R6/lib/X11/fonts/75dpi/encodings.dir
missing  g /usr/X11R6/lib/X11/fonts/CID/encodings.dir
missing  g /usr/X11R6/lib/X11/fonts/Speedo/encodings.dir
missing  g /usr/X11R6/lib/X11/fonts/Type1/encodings.dir
missing  g /usr/X11R6/lib/X11/fonts/misc/encodings.dir
.M...... c /usr/X11R6/lib/X11/fonts/misc/fonts.alias

bash$ rpm -V XFree86-base-fonts
.M...... c /usr/X11R6/lib/X11/fonts/misc/fonts.alias

And the answer to the next question

	What's a 'g' file?

Is RTFM, "man rpm" ;-)