Xorg ICE vs. Xfce4 (4.2-RC3) needs fixing /etc/rc.d/cleartmp

Jose M Rodriguez josemi at freebsd.jazztel.es
Fri Jan 7 01:11:42 PST 2005

Brooks Davis escribió:

>On Fri, Jan 07, 2005 at 08:08:34AM +0900, Rob wrote:
>>I'm testing Xfce 4.2-RC3, but it has following problems at startup:
>>---------------- .xsession-errors
>>_IceTransmkdir: ERROR: euid != 0,directory /tmp/.ICE-unix will not be 
>>_IceTransSocketUNIXCreateListener: mkdir(/tmp/.ICE-unix) failed, errno = 2
>>_IceTransMakeAllCOTSServerListeners: failed to create listener for local
>>xfce4-session: Unable to establish ICE listeners: Cannot establish any 
>>listening sockets
>>The patch below from Pawel Worach solves the problem.
>Could you please try the following patch?  It does the same thing, but
>gives the inode paranoid a way to disable the creation of these
>directories or only create the ones they need.
>-- Brooks
>Index: rc.d/cleartmp
>RCS file: /usr/cvs/src/etc/rc.d/cleartmp,v
>retrieving revision 1.11
>diff -u -p -r1.11 cleartmp
>--- rc.d/cleartmp	7 Oct 2004 13:55:25 -0000	1.11
>+++ rc.d/cleartmp	7 Jan 2005 00:31:51 -0000
>@@ -35,5 +35,7 @@ run_rc_command "$1"
> # restarting X
> #
> rm -f /tmp/.X[0-9]-lock
>-rm -fr /tmp/.X11-unix
>-mkdir -m 1777 /tmp/.X11-unix
>+if [ -n ${clear_tmp_xdirs} ]; then
>+	rm -fr ${clear_tmp_xdirs}
>+	mkdir -m 1777 ${clear_tmp_xdirs}
>Index: defaults/rc.conf
>RCS file: /usr/cvs/src/etc/defaults/rc.conf,v
>retrieving revision 1.235
>diff -u -p -r1.235 rc.conf
>--- defaults/rc.conf	15 Dec 2004 12:39:28 -0000	1.235
>+++ defaults/rc.conf	7 Jan 2005 00:30:49 -0000
>@@ -443,6 +443,8 @@ linux_enable="NO"	# Linux binary compati
> svr4_enable="NO"	# SysVR4 emulation loaded at startup (or NO).
> osf1_enable="NO"	# Alpha OSF/1 emulation loaded at startup (or NO).
> clear_tmp_enable="NO"	# Clear /tmp at startup.
>+clear_tmp_xdirs="/tmp/.X11-unix /tmp/.font-unix /tmp/.ICE-unix"
>+			# Directories needed by X11
> ldconfig_insecure="NO"	# Set to YES to disable ldconfig security checks
> ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib /usr/local/lib/compat/pkg"
> 			# shared library search paths
I recall putting this in a conf PR, try a follow-up.

But I think your patch is a little bit wrong

I never like the way X11 is  taken by  /etc/rc.d/cleartmp.  none must be 
do after the run_rc_command.

If we need do this from the base system (Thing that I doubt more and 
more), this must be implementing a new /etc/rc.d/clearx11tmp (this may 
be do in the main /etc/rc.d/cleartmp, like in sendmail), with all the bits:
clear_x11tmp_enable, clear_x11tmp_dirs, ...

But I must point that:

X11 is now mostly a ports thing, not a base system component.  If this 
can be take from ports (I send-pr this also), this must be the path to 
the solution.  I put a simple script from libs, but I can work and rcNG 
enabled thing if prefered.

This is not what x11 really needs.  x11 only needs some like this: mkdir 
-p ... && chown root:wheel ... && chmod 01777 ... .  this may be 
prefered by the x11 team.

This can be taken both from base and ports without too much problem.  
The only secondary effect of this I know is that you may polite /tmp 
entries twice, with is not a real pain to the whole boot process.


More information about the freebsd-x11 mailing list