fc4 ghost md5sums: a tale of woe

Matthew Miller mattdm at mattdm.org
Thu Mar 30 22:01:15 UTC 2006


I realize that FC4 is unexciting these days, so this may not generate much
enthusiasm, but: how in the _world_ are you RH folks building updates for
Fedora Core 4?

The story:

We need to make some local modifications to some of the files in the 'setup'
package here at BU, and we were chasing ourselves in circles over making it
not conflict with /var/log/lastlog also owned by util-linux.

Both of these packages have that file as a %ghost file, and last September,
they were updated to have permissions of 0644. Specifically, there's

  %ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog

in both files.

Okay, fine, that should work. And the packages in the FC4 updates area
indeed both install without conflict.

But then, when we went to install our package, bam:

  file /var/log/lastlog from install of setup-2.5.44-1.1bu46.1 conflicts
  with file from package util-linux-2.12p-9.14

Eh? But the entries are the same. After much trying-things-to-no-avail, I
tried just plain rebuilding the setup package with no changes.

  file /var/log/lastlog from install of setup-2.5.44-1.1 conflicts
  with file from package util-linux-2.12p-9.14

Hey! It's not anything we're changing -- rebuilding the unmodified package
doesn't work either.

Diagnosing this was a bit complicated by the fact that ghost files don't
show up in rpm -ql, but eventually with a bit of python, I dumped the
md5sums of /var/log/lastlog stored in each RPM. Ah-ha -- that's the problem.
The package I build comes out with nothing. (Either 0 or "" -- not precisely
sure which and it doesn't really matter...) The RPM built by RH in the FC4
update tree has "d41d8cd98f00b204e9800998ecf8427e" -- the md5sum of an empty
file.

Well, that's weird, I thought. Maybe it's because we're using the updated
version of RPM -- rpm-4.4.1-22 -- instead of the one that shipped with FC4
originally.

No, that's not it -- that version also results in 0 md5sums for ghost files.
I can't find exactly where this is in the RPM changelog, but I had to go
back to the FC2 version of rpm to build a package with the empty-file
checksum as in the FC4 update.

So, what th' heck? Does your FC4 build system use rpmbuild from FC2, or
what? :)

We're working around this by rebuilding util-linux too, which works,
but the whole thing was a headache and I don't like how this could happen
with other packages.....


-- 
Matthew Miller           mattdm at mattdm.org          <http://mattdm.org/>
Boston University Linux      ------>              <http://linux.bu.edu/>




More information about the devel mailing list