Eliminating static binaries (Was: Unwanted RPM dependencies)

David Zeuthen davidz at redhat.com
Tue Jun 5 09:07:29 EDT 2007


On Mon, 2007-06-04 at 22:52 -0400, Bernardo Innocenti wrote:
> The contents of jffs2 and ext3 images should be identical
> to simplify distribution.

Wasn't a goal when I wrote the OLPC build system (it was, however, a
goal to create four separate images aka streams (devel/non-devel
msdos-partitioned-ext3-for-usb-sticks/jffs2). I appreciate that goals
change however, I'm not active in the OLPC project anymore.

> And by the way, the kernel depends on mkinitrd so we can't remove
> it without breaking RPM deps.  

I was proposing to create an empty dummy RPM package with

 Provides: mkinitrd

and also one symlink /sbin/mkinitrd -> /bin/true. If I were to do the
OLPC build system all over again, I'd have one such RPM for dropping
deps that way. Not super nice, but effective.

> > Probably cryptsetup doesn't need to be linked statically anymore; Peter
> > Jones would know.
> 
> Good.  But, why do we need *any* static binary in the first
> place?  

Historical reasons, don't ask.

> Also, I dismiss the argument that today's computers have
> huge hard drives anyway so let's waste them.  Bigger hard
> drives are meant to hold more data, not the same amount of
> data stored in inefficient formats.  

Take it easy, it's not like I'm disagreeing with you.

> Some binaries we may wont to relink dynamically:
> 
>  - /sbin/e2fsck (dynamic on debian)
>  - /sbin/dmsetup.static (dynamic on debian)
>  - /sbin/insmod.static (dynamic on debian)
>  - /sbin/ldconfig (yes, even this one!)

Yes, in 99.999% of all cases (that's five nines for you), it's
absolutely unnecessary to have any static binaries at all in the default
Fedora install. If you had read the archives of fedora-devel-list (which
you Cc'ed yourself) you would have found

 - a huge discussion on "static linking considered harmful"; started
   by Ulrich Drepper. Some people have even more extreme points of
   of view than you. Here's a paper by Ulrich

    http://people.redhat.com/drepper/no_static_linking.html

 - that early user space in Fedora is increasingly moving to
   dynamic linking; that's a good thing; even better if people
   remember to kill statically linked binaries :-)

       David





More information about the Devel mailing list