Package: eterm
Version: 0.9.6-1
Severity: normal
Tags: patch
File: /usr/bin/Esetroot

If the default visual on a screen is PseudoColor then Esetroot gets an
error.  This can be seen with the Xvfb test server,

  xvfb-run -a -s '-cc 33' Esetroot /usr/share/Eterm/pix/tile/circuit.jpg
  =>
  X Error of failed request:  BadColor (invalid Colormap parameter)
    Major opcode of failed request:  84 (X_AllocColor)
    Resource id in failed request:  0x0
    Serial number of failed request:  10
    Current serial number in output stream:  10

gdb "break exit" shows 

#0  __GI_exit (status=status@entry=1) at exit.c:98
#1  0xb7e5be6e in _XDefaultError (dpy=0x804d008, event=0xbfffeecc) at 
../../src/XlibInt.c:1414
#2  0xb7e5bfa6 in _XError (dpy=dpy@entry=0x804d008, rep=rep@entry=0x805c6b8) at 
../../src/XlibInt.c:1463
#3  0xb7e58ca6 in handle_error (dpy=dpy@entry=0x804d008, err=0x805c6b8, 
in_XReply=in_XReply@entry=1)
    at ../../src/xcb_io.c:213
#4  0xb7e59ea3 in _XReply (dpy=dpy@entry=0x804d008, rep=rep@entry=0xbffff000, 
extra=extra@entry=0,
    discard=discard@entry=1) at ../../src/xcb_io.c:699
#5  0xb7e3e490 in XAllocColor (dpy=0x804d008, cmap=0, def=0xbffff084) at 
../../src/GetHColor.c:48
#6  0xb7f6e27a in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#7  0xb7f6f310 in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#8  0xb7f70bdb in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#9  0xb7f70c88 in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#10 0xb7f85ec2 in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#11 0xb7f70f61 in ?? () from /usr/lib/i386-linux-gnu/libImlib2.so.1
#12 0xb7f6022b in imlib_render_pixmaps_for_whole_image_at_size () from 
/usr/lib/i386-linux-gnu/libImlib2.so.1
#13 0x08049648 in ?? ()
#14 0xb7c8a8c5 in __libc_start_main (main=0x8048ef0, argc=2, ubp_av=0xbffff924, 
init=0x8049fe0, fini=0x8049fd0,
    rtld_fini=0xb7fee0c0 <_dl_fini>, stack_end=0xbffff91c) at libc-start.c:260
#15 0x08049b11 in ?? ()

I think cmap=0 means imlib_context_set_colormap() has not been called.
You'd probably like imlib to give some better message there than to call
XAllocColor() with cmap=0, but in any case I expect Esetroot should pass
the root colormap.  I get some joy from the line below.

--- Esetroot.c.orig	2011-03-16 16:16:59.000000000 +1100
+++ Esetroot.c	2013-11-06 06:05:10.000000000 +1100
@@ -180,6 +180,7 @@
     }
     imlib_context_set_display(Xdisplay);
     imlib_context_set_visual(DefaultVisual(Xdisplay, DefaultScreen(Xdisplay)));
+    imlib_context_set_colormap(DefaultColormap(Xdisplay, DefaultScreen(Xdisplay)));
     im = imlib_load_image_immediately(fname);
     if (!im) {
         fprintf(stderr, "%s:  Unable to load image file \"%s\".\n", *argv, fname);

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages eterm depends on:
ii  libast2            0.7-6+b1
ii  libc6              2.17-93
ii  libfreetype6       2.4.9-1.1
ii  libice6            2:1.0.8-2
ii  libimlib2          1.4.5-3
ii  libsm6             2:1.2.1-2
ii  libx11-6           2:1.6.2-1
ii  libxext6           2:1.3.2-1
ii  multiarch-support  2.17-93
ii  zlib1g             1:1.2.8.dfsg-1

eterm recommends no packages.

eterm suggests no packages.

-- no debconf information

Reply via email to