lanoxx / tilda

A Gtk based drop down terminal for Linux and Unix
GNU General Public License v2.0
1.28k stars 161 forks source link

Tilda will not start when built on debian jessie #223

Closed bnkr closed 8 years ago

bnkr commented 8 years ago

Trying to build a tilda debian package on jessie gave me a tilda which will abort on first run with the following error:

** (process:13014): WARNING **: Warning: show_on_monitor_number is no longer a valid config option for the current version of Tilda.

/home/jamesw/.config/tilda/config_0:88: no such option 'back_alpha'
tilda: confuse.c:211: cfg_opt_getnint: Assertion `opt && opt->type == CFGT_INT' failed.

Spoilers, I fixed it by commenting out some code:

diff --git a/src/configsys.c b/src/configsys.c
index 8214ac0..8df89db 100644
--- a/src/configsys.c
+++ b/src/configsys.c
@@ -174,9 +174,7 @@ static cfg_opt_t config_opts[] = {
     CFG_BOOL("scroll_background", FALSE, CFGF_NODEFAULT),
     CFG_BOOL("use_image", FALSE, CFGF_NODEFAULT),
     CFG_INT("transparency", 0, CFGF_NONE),
-#if VTE_MINOR_VERSION >= 40 /* VTE-2.91 */
     CFG_INT("back_alpha", 0xffff, CFGF_NONE),
-#endif
     CFG_END()
 };

The debug message shows that this is the version of libvte I built against:

Using libvte version: 0.38.1

Not sure if this is a debian thing or I messed up the build somehow but I can repeat from scratch using my branch https://github.com/bnkr/tilda/tree/tilda-debian-bnkr . I'm running the version I built with the code commented out and it seems to work fine so far (rev 9d8e003).

Here is my gdb session:

(gdb) bt
#0  0x00007ffff57ad147 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff57ae528 in __GI_abort () at abort.c:89
#2  0x00007ffff57a6266 in __assert_fail_base (
    fmt=0x7ffff58df688 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x7ffff608a956 "opt && opt->type == CFGT_INT", 
    file=file@entry=0x7ffff608a940 "confuse.c", line=line@entry=211, 
    function=function@entry=0x7ffff608b190 "cfg_opt_getnint") at assert.c:92
#3  0x00007ffff57a6312 in __GI___assert_fail (
    assertion=0x7ffff608a956 "opt && opt->type == CFGT_INT", 
    file=0x7ffff608a940 "confuse.c", line=211, 
    function=0x7ffff608b190 "cfg_opt_getnint") at assert.c:101
#4  0x00007ffff6086403 in cfg_opt_getnint ()
   from /usr/lib/x86_64-linux-gnu/libconfuse.so.0
#5  0x00000000004090b2 in config_getint (key=0x41cc9d "back_alpha")
    at src/configsys.c:274
#6  0x000000000040b9f9 in parse_cli (argc=1, argv=0x7fffffffe228)
    at src/tilda.c:330
#7  0x000000000040c918 in main (argc=1, argv=0x7fffffffe228) at src/tilda.c:753
(gdb) bt
#0  0x00007ffff57ad147 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff57ae528 in __GI_abort () at abort.c:89
#2  0x00007ffff57a6266 in __assert_fail_base (
    fmt=0x7ffff58df688 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x7ffff608a956 "opt && opt->type == CFGT_INT", 
    file=file@entry=0x7ffff608a940 "confuse.c", line=line@entry=211, 
    function=function@entry=0x7ffff608b190 "cfg_opt_getnint") at assert.c:92
#3  0x00007ffff57a6312 in __GI___assert_fail (
    assertion=0x7ffff608a956 "opt && opt->type == CFGT_INT", 
    file=0x7ffff608a940 "confuse.c", line=211, 
    function=0x7ffff608b190 "cfg_opt_getnint") at assert.c:101
#4  0x00007ffff6086403 in cfg_opt_getnint ()
   from /usr/lib/x86_64-linux-gnu/libconfuse.so.0
#5  0x00000000004090b2 in config_getint (key=0x41cc9d "back_alpha")
    at src/configsys.c:274
#6  0x000000000040b9f9 in parse_cli (argc=1, argv=0x7fffffffe228)
    at src/tilda.c:330
#7  0x000000000040c918 in main (argc=1, argv=0x7fffffffe228) at src/tilda.c:753
(gdb) quit

And here are the libraries I linked to (using ldd /usr/bin/tilda | xclip -selection c):

    linux-vdso.so.1 (0x00007fffeb97a000)
    libgtk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007f9b984b6000)
    libgdk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007f9b981fb000)
    libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f9b97fad000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f9b97d8b000)
    libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f9b97a12000)
    libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f9b977c0000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9b974b1000)
    libvte-2.91.so.0 => /usr/lib/libvte-2.91.so.0 (0x00007f9b97221000)
    libconfuse.so.0 => /usr/lib/x86_64-linux-gnu/libconfuse.so.0 (0x00007f9b97015000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f9b96cd2000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9b96ab5000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9b9670a000)
    libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f9b96506000)
    libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f9b962f9000)
    libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f9b960e9000)
    libXcomposite.so.1 => /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f9b95ee6000)
    libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f9b95ce3000)
    libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f9b95add000)
    libcairo-gobject.so.2 => /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007f9b958d4000)
    libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f9b955bf000)
    libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f9b95398000)
    libatk-bridge-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007f9b95169000)
    libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f9b94f53000)
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f9b94d16000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f9b94a6c000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9b9476b000)
    libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f9b94568000)
    libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f9b9435e000)
    libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f9b94153000)
    libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f9b93f44000)
    libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f9b93d08000)
    libwayland-cursor.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007f9b93b00000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f9b938ee000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9b936e6000)
    libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f9b934e4000)
    libthai.so.0 => /usr/lib/x86_64-linux-gnu/libthai.so.0 (0x00007f9b932db000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f9b930b4000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9b92e99000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f9b92c74000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f9b92a5d000)
    libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f9b92855000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9b925e7000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f9b923e4000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f9b921c2000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9b91fbe000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9b98d6e000)
    libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f9b91d11000)
    libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f9b91b0d000)
    libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f9b91903000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f9b916f9000)
    libatspi.so.0 => /usr/lib/x86_64-linux-gnu/libatspi.so.0 (0x00007f9b914c3000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f9b9127b000)
    libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f9b91024000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f9b90dfb000)
    libdatrie.so.1 => /usr/lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f9b90bf3000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f9b909ef000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f9b907ea000)
    libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f9b905ce000)
lanoxx commented 8 years ago

I guess that macro guard you commented out should probably test for version 38 and not 40. I cant remember if there was a reason 40 was used instead. I will investigate this.

bnkr commented 8 years ago

Thanks for a quick response. Please let me know if you'd like me to test things out on jessie for you.

pik commented 8 years ago

This is probably my fault - there was code using VTE_VERSION_MINOR guards and VTE_290 guards and I didn't standardize it everywhere. Not sure how this is happening though.. What does your ./configure look like?

diamondman commented 8 years ago

I also did a fresh build with commit e804f73ec8c6269e04635d63b0a1aaecda97da82 and get the same error. To test I removed my config file. It regenerated the folder and still complains about the config.

diamondman commented 8 years ago

configuring the build with ./configure --disable-vte-2.91 Caused the error to leave me alone. I will be happy to provide any information to help find the cause of the issue. But for now it works enough. Thanks guys for a great terminal

wandersonwhcr commented 8 years ago

ty :+1: