LINUX.ORG.RU

[gentoo] не собирается fbxkb

 


0

1

Самый свежий ебилд нашел тут https://bugs.gentoo.org/221909?id=221909 не собирается с вот таким выхлопом:

eggtrayicon.c: В функции ‘egg_tray_icon_new_for_xscreen’:
eggtrayicon.c:277:15: предупреждение: в присваивании целое преобразуется в указатель без приведения типа
eggtrayicon.c: В функции ‘egg_tray_icon_new’:
eggtrayicon.c:303:41: ошибка: ‘gdk_display’ undeclared (first use in this function)
eggtrayicon.c: В функции ‘egg_tray_icon_send_message’:
eggtrayicon.c:341:18: ошибка: ‘gdk_display’ undeclared (first use in this function)
eggtrayicon.c: В функции ‘egg_tray_icon_new’:
eggtrayicon.c:304:1: предупреждение: control reaches end of non-void function
make: *** [eggtrayicon.o] Ошибка 1
emake failed
Полный лог http://paste.org.ru/?ion1rk emerge --info http://paste.org.ru/?j5mlnp



Последнее исправление: tr0ll (всего исправлений: 1)

Гуглеж дал идею для патча:

diff -up ./eggtrayicon.c.orig ./eggtrayicon.c
--- ./eggtrayicon.c.orig	2004-10-15 19:02:20.000000000 +0400
+++ ./eggtrayicon.c	2011-09-21 23:22:42.713262225 +0400
@@ -153,7 +153,7 @@ egg_tray_icon_send_manager_message (EggT
 #if HAVE_GTK_MULTIHEAD
   display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
 #else
-  display = gdk_display;
+  display = gdk_x11_get_default_xdisplay;
 #endif
   
   gdk_error_trap_push ();
@@ -181,7 +181,7 @@ egg_tray_icon_update_manager_window (Egg
 #if HAVE_GTK_MULTIHEAD
   xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
 #else
-  xdisplay = gdk_display;
+  xdisplay = gdk_x11_get_default_xdisplay;
 #endif
   
   if (icon->manager_window != None)
@@ -300,7 +300,7 @@ egg_tray_icon_new_for_screen (GdkScreen 
 EggTrayIcon*
 egg_tray_icon_new (const gchar *name)
 {
-  return egg_tray_icon_new_for_xscreen (DefaultScreenOfDisplay (gdk_display), name);
+  return egg_tray_icon_new_for_xscreen (DefaultScreenOfDisplay (gdk_x11_get_default_xdisplay), name);
 }
 
 guint
@@ -338,7 +338,7 @@ egg_tray_icon_send_message (EggTrayIcon 
 #if HAVE_GTK_MULTIHEAD
       xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
 #else
-      xdisplay = gdk_display;
+      xdisplay = gdk_x11_get_default_xdisplay;
 #endif
       
       ev.type = ClientMessage;
diff -up ./fbxkb.c.orig ./fbxkb.c
--- ./fbxkb.c.orig	2011-09-21 23:19:41.811413255 +0400
+++ ./fbxkb.c	2011-09-21 23:21:38.081456017 +0400
@@ -456,7 +456,7 @@ init()
 
     ENTER;
     sym2pix  = g_hash_table_new(g_str_hash, (GEqualFunc) my_str_equal);
-    dpy = GDK_DISPLAY();
+    dpy = gdk_x11_get_default_xdisplay();
     a_XKB_RULES_NAMES = XInternAtom(dpy, "_XKB_RULES_NAMES", False);
     if (a_XKB_RULES_NAMES == None)
         ERR("_XKB_RULES_NAMES - can't get this atom\n");
@@ -536,7 +536,7 @@ Xerror_handler(Display * d, XErrorEvent 
     char buf[256];
 
     ENTER;
-    XGetErrorText(GDK_DISPLAY(), ev->error_code, buf, 256);
+    XGetErrorText(gdk_x11_get_default_xdisplay(), ev->error_code, buf, 256);
     ERR( "fbxkb : X error: %s\n", buf);
     RET();
 }

Следующая возникшая ошибка решилась еще проще:

diff -up ./Makefile.common.orig ./Makefile.common
--- ./Makefile.common.orig	2011-09-21 23:59:05.380125051 +0400
+++ ./Makefile.common	2011-09-22 00:04:52.397068288 +0400
@@ -16,7 +16,7 @@ endif
 endif
 
 CC = gcc
-LIBS = $(shell pkg-config --libs gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0) -L/usr/X11R6/lib  -lXmu
+LIBS = $(shell pkg-config --libs gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0) -L/usr/X11R6/lib  -lXmu -lX11
 INCS = $(shell pkg-config --cflags gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0)
 CFLAGS = -O2    # overwriten by command line or env. variable
 CFLAGS += -Wall # always nice to have 

В итоге fbxkb собрался, однако при запуске он выдает в stderr сообщение:

kbd group numbering is not continous
run 'xlsatoms | grep pc' to know what hapends

, после чего завершается. Вывод xlsatoms | grep pc ни о чем мне не говорит, что дальше делать — не знаю

dexpl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.