Service files in lib/datadir

Havoc Pennington hp at redhat.com
Fri Dec 17 09:07:09 PST 2004


On Fri, 2004-12-17 at 12:20 +0100, Richard Hult wrote:
> Hi,
> 
> A while ago, the default conf for the session bus was changed to look up 
> service files in datadir rather than libdir. The reason was to fix 64/32 
> bit parallel installations, but I don't think this is the correct fix 
> since it breaks the semantics of datadir (services are not shareable 
> across different archs for example). It also breaks existing installed 
> services since the service files have to be moved, which is bad even 
> though dbus isn't supposed to be stable yet.
> 
> Is there some other way to fix the 64/32 bit problem?
> 

I'm not sure. So on Linux there are several 32/64 configurations as I
understand it:

 /lib is 32-bit and /lib64 is 64-bit
    - within this configuration, either 32 or 64 can be the default;
      e.g. on ppc64 we would expect GNOME to run in 32, and on
      x86_64 GNOME would run in 64

 /lib is 64-bit and 32-bit is in the /emul-ia32 hack directory
    - this is Itanium; apps normally run in 64-bit and 32-bit binaries
      get routed to the 32-bit libs "transparently" (it doesn't really 
      work well)

bindir is always shared, and we've ended up with binaries ending in -64
and other ad hoc hacks.

What we want to happen is:
    - for a desktop session always use the services from the 
      default mode; e.g. on ppc64 we want the 32-bit services
      and on x86_64/Itanium we want the 64-bit services. The 
      bus itself will also be in this mode.
      Here we could say "the bus uses the libdir it was built with
      to find services" and I think it would work...

With libdir, to make this happen we need to use /lib on ppc64 and
Itanium and /lib64 on x86_64 for the service files.

I guess I don't really see how the previous usage of libdir was breaking
things...

Though, on x86_64 we install the 32-bit libraries built on x86, so we
could certainly get the situation where the same .service file is
in /lib and /lib64. The one in /lib would be useless and never used.
That might be a bit strange.

One almost wants to say that the .service files map to executables and
should be in bindir or something ;-)

I probably got all this a little bit wrong.

Havoc





More information about the dbus mailing list