tag 572719 + unreproducible thanks On Fri, 05 Mar 2010 22:03:31 +0000, Chmouel Boudjnah wrote:
> When launching any application that use the libx11-protocol-x11 the program
> does not start trying to find the X server. Example :
>
> doc/libx11-protocol-perl/examples$ perl wintree.pl
>
> Can't connect to display `unix:0': No such file or directory at
> /usr/share/perl5/X11/Protocol.pm line 2264
Works fine here:
gre...@belanna:~$ perl /usr/share/doc/libx11-protocol-perl/examples/wintree.pl
-fe-+-(3)1
|-(6)4
|-(docker:8)2
|-(docker:8)3
|-(<unknown>:16)1`<unknown>'---2
|-(xterm:d)38
|-(<unknown>:16)293b`Critical Notification'---293c
|-(firefox-bin:2)1`firefox-bin'---2
|-(firefox-bin:2)52-+-53
[...]
What happens if you run for example `DISPLAY=unix:0 xeyes' (or any
other small X application)?
Looking at the code, X11::Protocol does
require 'X11/Protocol/Connection/UNIXSocket.pm';
$conn = X11::Protocol::Connection::UNIXSocket
->open($host, $dispnum);
and X11::Protocol::Connection::UNIXSocket does
my($host, $dispnum) = @_;
my($sock) = IO::Socket::UNIX->new('Type' => SOCK_STREAM(),
'Peer' => "/tmp/.X11-unix/X$dispnum");
croak "Can't connect to display `unix:$dispnum': $!" unless $sock;
so that's the error you get.
$dispnum comes from X11::Protocol:
if ($main::ENV{'DISPLAY'}) {
$display = $main::ENV{'DISPLAY'};
} else {
carp "Can't find DISPLAY -- guessing `$Default_Display:0'";
$display = "$Default_Display:0";
}
Since you don't get this "Can't find DISPLAY" warning, I assume that
$DISPLAY is set in your environment.
Which maybe leads us to /tmp/.X11-unix/X$dispnum in
X11::Protocol::Connection::UNIXSocket
Could you please send to output of
$ echo $DISPLAY
$ ls -l /tmp/.X11-unix/
Cheers,
gregor
--
.''`. http://info.comodo.priv.at/ -- GPG Key IDs: 0x8649AA06, 0x00F3CFE4
: :' : Debian GNU/Linux user, admin, & developer - http://www.debian.org/
`. `' Member of VIBE!AT & SPI, fellow of Free Software Foundation Europe
`- NP: Hair: Age of Aquarius
signature.asc
Description: Digital signature

