Re: [gdm-list] at-spi-registryd not starting automatically in gdm [was multiple at-spi...]

Hello Brian,

What is puzzling me however, is that in Ubuntu 7.04, at-spi-registryd is also located in /usr/lib/at-spi/. And there, registryd starts. Ubuntu 7.04 uses gdm 2.18.1.

In my tests of yesterday, the variable command had the value /usr/local/libexec/at-spi-registryd. Could this be related to the fact that I did a configure without --prefix? Not that the wrong value of LIBEXECDIR can be caused by me not doing ./configure as I should!?

I will add links to these emails in the bug report in Ubuntu. Maybe somebody more knowledgeable than me can do the fix. Otherwise, I will try my best; probably in two weeks.


PS: I did an error in my previous email: g_spawn_async() is in gdmcommon.c and not in gdmlogin.c


Great, I'm glad we finally tracked down the problem.

To fix this problem properly, we should probably add a new configure option.
Note it already supports configuration like this.  For example with logdir:


AC_ARG_WITH(log-dir,    [  --with-log-dir=<file>     log dir])

if ! test -z "$with_log_dir"; then


We probably should add a --with-atspi-dir which defaults to libexecdir.
The code would look very similar to the above except you'ld use
atspi-dir instead of log-dir, etc and set a variable called GDM_ATSPI_DIR.

One minor difference, you need to use this code (already in
to get the right libexecdir value:

if test ${libexecdir} = "\${exec_prefix}/libexec"; then

So, you could add your test after we set ssh_libexec in the script
and set it to ssh_libexec if with-atspi-dir is not passed in.

Then you would need to modify the code so it gets the value from
GDM_LOG_DIR rather than just using LIBEXECDIR.  Note in daemon/
that we set -DLOGDIR, so you'ld need to set a similar -D argument for
this to set ATSPIDIR, and then reference ATSPIDIR in the c-file.

Then you should be able to configure this.

Can you try this?


I may have approached the problem.

In gdmlogin.c in the function pre-atspi_launch:


The line
command = g_strdup (LIBEXECDIR "/at-spi-registryd");

Moreover, the error argument of g_spawn_async() returned:
Failed to execute child process "/usr/local/libexec/at-spi-registryd" (No such file or directory)


So I commented out the line
command = g_strdup (LIBEXECDIR "/at-spi-registryd");
and modified the declaration of command to:
char *command = "/usr/lib/at-spi/at-spi-registryd";
(This is the location of at-spi-registryd on my Ubuntu installation.)

Now I get the XEVIE error (see my previous email) in the terminal where I launch ./gdmlogin, but at-spi-registryd gets started.


I have no clue at the moment, where LIBEXECDIR resides and how to correct the problem.


gdm-list mailing list
gdm-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]