Mailinglist Archive: opensuse (3251 mails)

< Previous Next >
Re: [opensuse] Compiling the Suse way
  • From: Andreas Jaeger <aj@xxxxxxx>
  • Date: Fri, 06 Jun 2008 13:18:26 +0200
  • Message-id: <m3wsl2u7zx.fsf@xxxxxxxxxxx>
Dave Howorth <dhoworth@xxxxxxxxxxxxxxxxx> writes:

Andreas Jaeger wrote:
Philipp Thomas <philipp.thomas2@xxxxxxx> writes:

On Thu, 05 Jun 2008 14:02:09 -0500, Jim Flanagan wrote:

This method uses configure > make > checkinstall (instead of make
Checkinstall has been dropped from openSUSE because it doesn't work
anymore. Checkinstall's trick is to load a library via LD_PRELOAD that
redirects all functions dealing with files. Now for installing a package
you need to be root and for programs running with root privileges the
dynamic loader ignores LD_PRELOAD as this would otherwise be a huge
security problem.

The behaviour is: For programs being setuid root, LD_PRELOAD is ignored
- or more exactly:
/* The LD_PRELOAD environment variable gives list of libraries
separated by white space or colons that are loaded before the
executable's dependencies and prepended to the global scope
list. If the binary is running setuid all elements
containing a '/' are ignored since it is insecure. */

Reading this makes me confused. Am I right in thinking that LD_PRELOAD
still works and in particular the checkinstall application of it would
still work if either:

* the checkinstall is run by root directly and the executable is *not*


* or, the special library that checkinstall loads is given using a
relative path rather than an absolute one?

No, the library needs to be in a system path, e.g. /usr/lib and
LD_PRELOAD contains only the name - not a single slash - in it.

Either of these seems like a very simple way to make checkinstall work,
so I suspect I'm misunderstanding something one of you has said :(

Note that I have no clue about checkinstall,

Andreas Jaeger, Director Platform/openSUSE, aj@xxxxxxx
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
Maxfeldstr. 5, 90409 Nürnberg, Germany
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
< Previous Next >
Follow Ups