RPM Community Forums

Mailing List Message of <rpm-users>

Re: Glibc %post

From: Jeff Johnson <n3npq@mac.com>
Date: Mon 10 May 2010 - 00:07:54 CEST
Message-id: <A39753C7-28B5-41B0-A450-0710105779B2@mac.com>

On May 9, 2010, at 5:19 PM, Eric MSP Veith wrote:

> Hash: SHA1
> Hello list,
> is there a good and clean way of upgrading glibc on a running system via 
> RPM? Fedora, RedHat and SuSE ship a "glibc_post_install.c" file that seems 
> to take care of this, Slackware just does some linking/copying, like first 
> putting everything /lib/incoming, then ldconfig'ing links from /lib to 
> /lib/incoming, then copying it to /lib, then doing ldconfig again.
> The crucial part is always the actual swapping, i.e. re-setting the links. 

You mean running /sbin/ldconfig? yep.

> I'm wondering whether someone has to offer some insight on how to switch in 
> a good manner a C library? :-)

Not sure what "switch in ... a C library" means.

The issue upgrading glibc is that side-effects of upgrading a library
cannot be handled with /bin/sh scripting because glibc is a necessary
pre-requisite of all ELF executables. SO if you miss something upgrading
glibc _EVERYTHING_ dies.

Other C libraries are quite simple to upgrade -- the issue is entirely glibc itself.

This is the "inner circle of dependency hell" in RPM which contains ~10-13 packages.

Note that the pugliness of glibc_install_post being statically linked and
used as a "helper" for glibc is hysterical nonsense:

	A long time ago in a far and different place, NS libraries changed incompatibly,
	thereby breaking remote access through SSH, and causing quite a furor about
	glibc "upgrades through RPM. Since NS libraries change like, say, once every 5+
	years, you _REALLY_ needn't worry about the issue, nor is the glibc_install_post
	statically linked helper _REALLY_ needed.

Disclaimer: I haven't looked recently, my barf bag overflowed when I last looked 2 years ago.

Meanwhile, since embedded lua has been around for years in RPM, and everything being
done (last I looked) by glibc_install_post could easily be done by embedded lua,
you might well look into replacing
	%post -p /usr/sbin/glibc_post_upgrade.i686
	%post -p <lua>
	... whatever glibc_post_upgrade.i686 does but in Lua ...

That would benefit almost all RPM users, since the code in glibc_install_post
is exceptionally contorted and twisty and unreadable and hard.

I'll wager the same task that /usr/sbin/glibc_post_upgrade.i686 does can be done
like 10x fewer lines of lua than in C and voo-doo ASM. ANy takers?

	I already know my answer: The house collects on "00" and "0" no matter what ;-)

73 de Jeff

> Thanks alot in advance,
> 			Eric
> P. S. For @rpm5, I'm still maintaining my todo list (i.e., rpm5 make check 
> on Arch Linux, more docs and web site twiddeling), but won't get to work on 
> it for at least two weaks, just to let you know. Work has been raining on me 
> like hell the last days, so it'll be stalled. Sorry.
> Version: GnuPG v1.4.9 (GNU/Linux)
> FGQAn3Z8d66EVKfCjdvjLd4d/nKOeTzG
> =dlTE
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> User Communication List                             rpm-users@rpm5.org
Received on Mon May 10 00:08:26 2010
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.