Service files in lib/datadir
hp at redhat.com
Fri Dec 17 09:07:09 PST 2004
On Fri, 2004-12-17 at 12:20 +0100, Richard Hult wrote:
> 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
/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
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
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.
More information about the dbus