I've built the entire Xserver from git for testing proposes using the build.sh provided by freedesktop.org as the easier method to compile all modules against the git tree, and installed under the /opt/xorg path. The problem is that I can't find how gdm decides from where to load the Xserver and related binaries.I've read on the X.org site the section: 'Actually running the conformance tests', but the scripts/helpers that I could use returns a 404.Although I know where the Xorg executable is and its links, I'm not sure that will be enough to make everything work as expected, as I want to test the Xserver built and installed in the custom path.I'm using Debian 7.0 and GDM 3.4.1.Any other method could be used too?
How to make gdm3 start X installed in a different path (or running X from a personalized path)?
x11;xorg;gnome3;gdm3
Answer in 2 words:The location of Xserver for GDM is hard-coded at compile time in configure.ac, line 1199 in X_SERVER variable and can't be configured. So, may be you could play with symlinks, linking /usr/bin/Xorg (or, less probably /usr/bin/X, see this) to your build of Xserver.Details:I have a Debian 7, too and here's my process tree: |-gdm3-+-gdm-simple-slav-+-Xorg |      |                 |-gdm-session-wor-+-gnome-session-+-bluetooth-apple---{bluetooth-apple} |      |                 |                 |               |-evolution-alarm---2*[{evolution-alarm}] |      |                 |                 |               |-gdu-notificatio |      |                 |                 |               |-gnome-fallback----2*[{gnome-fallback-}] |      |                 |                 |               |-gnome-panel-+-gnome-terminal-+-bash |      |                 |                 |               |             |                |-bash---vi |      |                 |                 |               |             |                |-bash-+-less |      |                 |                 |               |             |                |      `-pstree |      |                 |                 |               |             |                |-gnome-pty-helpe |      |                 |                 |               |             |                `-3*[{gnome-terminal}] |      |                 |                 |               |             |-iceweasel-+-plugin-containe-+-4*[gtk-gnash] |      |                 |                 |               |             |           |                 `-{plugin-containe} |      |                 |                 |               |             |           `-31*[{iceweasel}] |      |                 |                 |               |             |-pidgin |      |                 |                 |               |             `-3*[{gnome-panel}] |      |                 |                 |               |-gnome-screensav---2*[{gnome-screensav}] |      |                 |                 |               |-gnome-settings----2*[{gnome-settings-}] |      |                 |                 |               |-gnome-sound-app---{gnome-sound-app} |      |                 |                 |               |-metacity---3*[{metacity}] |      |                 |                 |               |-nm-applet---{nm-applet} |      |                 |                 |               |-notification-da---{notification-da} |      |                 |                 |               |-polkit-gnome-au---{polkit-gnome-au} |      |                 |                 |               |-ssh-agent |      |                 |                 |               |-tracker-miner-f---2*[{tracker-miner-f}] |      |                 |                 |               |-tracker-store---6*[{tracker-store}] |      |                 |                 |               `-3*[{gnome-session}] |      |                 |                 `-2*[{gdm-session-wor}] |      |                 `-{gdm-simple-slav} |      `-{gdm3}So, Xorg is started via gdm-simple-slave. Definitly, /etc/gdm/Init/Default has nothing to do with starting Xserver, as it was said here and here.There were some indications, that it's impossible to configure, how X is started from gdm.I decided to go for source codes, which are pretty well structured. So:Go to the source codes, there is a daemon folder, which contains an INTERNALS file, explaining the structure of code.There you can read:** GdmServerA class, used by the slave, that manages running a local X Server.So, the file we need is https://git.gnome.org/browse/gdm/tree/daemon/gdm-server.cThere are several nested functions, responsible for calling X server and creating its command line arguments.The function directly responsible for running X server process is gdm_server_spawn, which spawns the X in the line 694 with glib's g_spawn_async_with_pipes.So, we're to find out, how its argv is formed. Well, in 2 words it's line 293 and we need the value of X_SERVER macro (unless you're using RedHat's systemd instead of sysVinit, but you aren't :)).Alas, this macro is seemingly formed in configure.ac, line 1199 and is hard-coded. So, it seems that the best option is to place a symlink to your build of Xserver to one of those locations.