Courier-0.47 RPMBuild error

Paul Howarth paul at city-fan.org
Tue Nov 16 08:44:25 UTC 2004


On Mon, 2004-11-15 at 23:15 -0500, Sam Varshavchik wrote:
> This is a bug in rpm/glibc.  stracing rpm shows that it globs out 
> "%{_bindir}/*" by calling stat() on each filename.
> 
> In an RPM buildroot image, intra-package soft links are obviously broken, 
> since they point outside the buildroot.  stat() fails on them.
> 
> Bug 139460.
> 
> Looks like recently rpm switched from lstat() to stat(), when globbing out 
> %files.
> 
> This bug must've been hiding for quite some time.  You'll only hit it if 
> you're building a package that installs softlinks for the first time, or if 
> the newer version of an installed package installs new soft links.  
> Otherwise, inside the build root the softlinks point to the existing 
> installation's files, outside of the buildroot, stat() succeeds, and rpm 
> processes the results from glob().

Most packages avoid this problem by using relative softlinks instead of
absolute ones, e.g.

ln -s ../../some.dir/some.file $RPM_BUILD_ROOT/other.dir/some.file
instead of
ln -s /some.dir/some.file $RPM_BUILD_ROOT/other.dir/some.file

This then works both inside and outside the buildroot.

Paul.
-- 
Paul Howarth <paul at city-fan.org>




More information about the fedora-list mailing list