Public bug reported:

If TMPDIR is set to something on a different filesystem from
/var/lib/xkb, then the X server fails to start up as follows:

  [xkb] Can't rename /tmp/tmp.qHzEh1iHUk/dsc0-build/tmpdir/fileAfodkU to 
/var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm, error: 
Invalid cross-device link
  (EE) XKB: Couldn't compile keymap
  (EE) XKB: Failed to load keymap. Loading default keymap instead.
  [xkb] Can't rename /tmp/tmp.qHzEh1iHUk/dsc0-build/tmpdir/fileF2rYOh to 
/var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm, error: 
Invalid cross-device link
  (EE) XKB: Couldn't compile keymap
  XKB: Failed to compile keymap

A simple way to reproduce this is to start a fresh schroot (preferably
with overlayfs or LVM snapshots so that you can start from scratch
trivially), make sure no /var/lib/xkb/server-*.xkm files exist, and run
'TMPDIR=/tmp xvfb-run sh'.

This is because XkbDDXCompileKeymapByNames uses tempnam(xkm_output_dir,
NULL) to create a temporary file.  As documented, tempnam(3) prefers
TMPDIR over the directory argument if TMPDIR is set.  Perhaps this code
should use something based on mkstemp(3) instead, which would permit
finer-grained control.

This makes it tedious to run DEP-8 test suites that require Xvfb,
because adt-run sets TMPDIR.

** Affects: xorg-server (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xorg-server in Ubuntu.
https://bugs.launchpad.net/bugs/972324

Title:
  server fails to start up if TMPDIR is set to something on a different
  filesystem from /var/lib/xkb

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/972324/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-x-swat
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~ubuntu-x-swat
More help   : https://help.launchpad.net/ListHelp

Reply via email to