Bug 433489 - inconsistent $TMPDIR handling causes GNOME breakage
Summary: inconsistent $TMPDIR handling causes GNOME breakage
Alias: None
Product: Fedora
Classification: Fedora
Component: GConf
Version: 9
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Ray Strode [halfline]
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 2008-02-19 16:36 UTC by James Ralston
Modified: 2018-04-11 06:55 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2009-07-14 16:44:53 UTC

Attachments (Terms of Use)

Description James Ralston 2008-02-19 16:36:00 UTC
If you go to System->Preferences->Hardware->Keyboard, click the "Layouts" tab,
click the "Layout Options..." button, and in the resulting window, expand "Third
level choosers", there are (among others) two options in the list:

Press Right Alt key to choose 3rd level.
Press Right Alt key to choose 3rd level, Shift+Right Alt key is Multi_Key.

Under Fedora 8, the second option (the Multi_Key option) works; if this is
selected, I can use Shift+Right Alt to enter a wide variety of characters.

Under Fedora 9 (Rawhide), Shift+Right Alt does not function as Multi_Key.

This is with xorg-x11-drv-keyboard-1.2.2-3.fc9.i386.

Comment 3 Matthias Clasen 2008-02-21 19:25:28 UTC
Works fine here, with a US layout.

Comment 4 James Ralston 2008-02-21 21:15:23 UTC

If I create a new user account, login to that account, run X, and enable
Multi_Key handling, it works properly.  If I logout of the new account, login to
my "real" account, and start X, the Multi_Key still doesn't work.

So, this is actually a slightly different bug: leftover cruft from previous
versions of GNOME is breaking functionality of the current version.  All such
"cruft issues" should be handled the first time a newer version of GNOME
launches, yes?

Comment 5 Matthias Clasen 2008-02-22 17:18:04 UTC
Not sure that there's a cruft issue here. The account I am testing this on has
been upgraded from at least gnome 2.10

Comment 6 James Ralston 2008-02-22 20:14:41 UTC
The account I'm trying to use has been upgraded from at least GNOME 1.2.

Given that it doesn't work, but a new account does, I'm reasonably confident
that this is a cruft issue.

Comment 7 James Ralston 2008-03-08 01:54:24 UTC
Ok, I think I might have a better clue as to what's going on here...

I rsync'ed most of my GNOME dotdirs (~/.gnome2, ~/.gconfd, et. al.) to another
system (running F8) for testing.  When I started X in that system, before
anything else came up, I received a dialog box telling me that my X keyboard map
and my GNOME keyboard map differed, and asking me which one I wanted to use.  I
wasn't sure, so I clicked the "use X keyboard map" button.

Now, the options under "Third level choosers" have no effect, just like the
Rawhide system.  I think I chose poorly; I think the reason why the Third level
choosers aren't working is because I'm using the X keyboard map, not the GNOME
keyboard map.

To undo what I've done, I'm going to try rsync'ing my GNOME dotfiles from yet
another system (where the Third level chooser options work).  In the meantime,
though, how do I get back that dialog box so that I can choose to use the GNOME
keyboard map, instead of the X keyboard map?

Comment 8 Ray Strode [halfline] 2008-03-08 21:00:23 UTC
gconftool-2 --set
/desktop/gnome/peripherals/keyboard/disable_xmm_and_xkb_warning --type bool false

Comment 9 Bug Zapper 2008-05-14 05:17:11 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:

Comment 10 James Ralston 2008-05-19 23:32:08 UTC
Well, I finally managed to track down the cause of this problem, and it's
actually a lot worse than a simple cruft issue; there's some very bad breakage
going on here.  Here's how to reproduce it under Fedora 9.

Create a test user account and login to it.

Create an ~/.Xclients file for the test account with mode 0755 and the following

    if [ "x${TMPDIR}" = x ]; then
      TMPDIR=`mktemp -d -t`
      export TMPDIR
    exec /etc/X11/xinit/Xclients

Log out of the test account and log back in.  Multi_Key no longer works.

The fundamental problem here appears to be that some portions of the GNOME code
base hardcode /tmp as the location for all temporary files and directories
(including the directories that hold sockets used for communication), but other
portions of the code base obey $TMPDIR if it is set.

You can see this with the test above.  After creating the ~/.Xclients file,
logging out, and logging back in, you will find gconfd-${USER} and orbit-${USER}
directories in *both* /tmp and ${TMPDIR}.

I would argue that from a security standpoint, obeying $TMPDIR is the correct
behavior.  (This is true for everything, not just GNOME.  I would also argue
that Fedora should set $TMPDIR (via mktemp) in /etc/profile and /etc/csh.login,
but that's another battle.)  It would also appear that GNOME is in the process
of transitioning from the "just put it in /tmp" behavior to the "obey $TMPDIR if
set" behavior, which (IMHO) is a Good Thing.

But regardless, all parts of GNOME must be uniform in the decision to either
ignore or obey $TMPDIR, because a lack of uniformity causes breakage.  The
Multi_Key breakage appeared between F8 and F9, but I'd bet money that things
other than just Multi_Key are broken if $TMPDIR is set, and that I just haven't
noticed them because I'm not a GNOME developer.

I've updated the Summary appropriately; please adjust the Severity/Priority and
reassign to the appropriate Component.

Comment 11 Bastien Nocera 2009-04-27 19:15:41 UTC
Except that exporting the TMPDIR at that time is probably too late, so you'd end up with 2 GConf running because one ran after it couldn't find the other.

You can probably verify that by checking the output of:
cat /proc/`pidof gconfd-2`/environ

Reassigning to GConf, might be an orbit bug though.

Comment 12 Bug Zapper 2009-06-09 23:35:35 UTC
This message is a reminder that Fedora 9 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 9.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '9'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 9's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 9 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 

Comment 13 Bug Zapper 2009-07-14 16:44:53 UTC
Fedora 9 changed to end-of-life (EOL) status on 2009-07-10. Fedora 9 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.

Note You need to log in before you can comment on or make changes to this bug.