Closed gen2brain closed 13 years ago
See Issue #1
It appears you are using an old version of libnotify. Emperor cannot work with a version of libnotify older than 0.7 as they depend on GTK+2, and Emperor uses GTK+3.
I will attempt to add an option to disable notifications.
Version 0.1.1 allows compiling without a recent libnotify.
Ok, I compiled now, but I get this:
Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported aborting...
I have gtk+ 2.24.5 and 3.0.12
Ah, I see now that it is a same issue as #1.
Curious. In #1, that error did appear, but that was because of libnotify, which, in this case, is out of the equation. Can you give me some more information here? Which distribution/operating system are you using, which distribution release? How did you install GTK+3? Do other GTK+3 apps work? (try gtk3-demo
)
If other GTK+3 apps work, can you give me a full emperor build log, and the output of ldd src/application/emperor
, please?
Hi, I am not at home right now, I will post all the info you need when I get back. I use gentoo, all packages are installed via package manager. I also looked at ldd output and only saw gtk+-3 there, not version 2.
Here is more info: configure - http://pastebin.com/U2inwZm7 make - http://pastebin.com/D17pwbVG ldd - http://pastebin.com/qkn4duiK
It does look like binary is linked both to gtk+ 2 and 3, gtk3-demo works...
Which version of libnotify do you have installed? Can you also give me the config.log
file, please?
It still looks like libnotify is pulling in gtk+2, which doesn't make a lot of sense, as gtk+2 integration was removed from libnotify-0.7, which is required by the configure script - but I may be wrong.
See if running ./configure --without-libnotify
fixes this.
I have libnotify-0.7.4 now, here is the config.log - http://pastebin.com/9CM38kp1 I wil try without-libnotify now.
With 0.1.1 and --without-libnotify I get this: gcc: ./emperor_core.c: No such file or directory
Oh, now that's interesting. I'll have to fix that.
Try with libnotify enabled again. I think you upgraded libnotify, but the config cache still used the old versions configuration, which requires gtk+2.
Here is what happens now: http://pastebin.com/QdwRELPH
--without-libnotify only works if you have valac installed. The configure script should probably print a helpful error message.
Remove the whole source directory, unpack it again, and it should work with libnotify. Or install valac version 0.12, and it should work without libnotify as well (and from your current source tree)
I have valac, but gentoo installs that as valac-014, I will make a symlink and try again.
Yeah, no, that won't work. There have been some incompatible changes in the 0.14 VAPIs. Like I said, just re-extracting the emperor sources should do the trick.
If you really want to compile the vala, you can either install valac-0.12, or copying an 0.12 version of gtk+-3.0.vapi to src/application might work.
Yes, I understood when I saw errors that I need vala 0.12, anyway, I still can't compile it, error is in the latest pastebin link I sent. /bin/sh: --pkg=gio-unix-2.0: command not found
Have you tried re-extracting the sources? Remove the whole emperor-0.1.1 directory, extract the tarball again, ./configure
(keeping libnotify enabled), and it should build without vala, without any problems. Or have you tried that?
The configure script removes emperor_core.c when it's given --without-libnotify to force its recompilation. It stays removed even when you reconfigure, but if you re-extract the sources, the file will be there again.
The --pkg=gio-unix-2.0 error is caused by the fact that you don't have valac 0.12 installed.
This is the error, I also try to bootstrap but error is the same:
15 -I/usr/include/libdrm -g -O2 -MT emperor-file_pane.o -MD -MP -MF .deps/emperor-file_pane.Tpo -c -o emperor-file_pane.o
test -f 'file_pane.c' || echo './'
file_pane.c file_pane.c: In function 'emperor_application_file_pane_construct': file_pane.c:1449: warning: assignment from incompatible pointer type file_pane.c:1454: warning: assignment from incompatible pointer type file_pane.c: In function 'emperor_application_file_pane_procure_mount_co': file_pane.c:2953: warning: 'gee_map_contains' is deprecated (declared at /usr/include/gee-0.8/gee.h:1297) file_pane.c: In function 'emperor_application_file_pane_on_mouse_event': file_pane.c:3856: warning: passing argument 5 of 'g_timeout_addfull' from incompatible pointer type /usr/include/glib-2.0/glib/gmain.h:504: note: expected 'GDestroyNotify' but argument is of type 'void ()(struct Block5Data )' file_pane.c: In function 'emperor_application_file_pane_waiting_for_mount_show_notification': file_pane.c:5460: error: too few arguments to function 'notify_notification_new' file_pane.c:5464: warning: passing argument 4 of 'notify_notification_addaction' from incompatible pointer type /usr/include/libnotify/notification.h:148: note: expected 'NotifyActionCallback' but argument is of type 'void ()(struct NotifyNotification _, const gchar , void )' make[2]: _* [emperor-file_pane.o] Error 1 make[2]: Leaving directory/temp/emperor-0.1/src/application' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
/temp/emperor-0.1/src' make: *\ [all-recursive] Error 1