tjol / emperor

Orthodox file manager for GNOME — DEAD, recommended alternative: MeanEYE/sunflower
GNU General Public License v3.0
11 stars 0 forks source link

Can't compile 0.1 #2

Closed gen2brain closed 13 years ago

gen2brain commented 13 years ago

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

tjol commented 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.

tjol commented 13 years ago

Version 0.1.1 allows compiling without a recent libnotify.

gen2brain commented 13 years ago

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

gen2brain commented 13 years ago

Ah, I see now that it is a same issue as #1.

tjol commented 13 years ago

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?

gen2brain commented 13 years ago

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.

gen2brain commented 13 years ago

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...

tjol commented 13 years ago

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.

gen2brain commented 13 years ago

I have libnotify-0.7.4 now, here is the config.log - http://pastebin.com/9CM38kp1 I wil try without-libnotify now.

gen2brain commented 13 years ago

With 0.1.1 and --without-libnotify I get this: gcc: ./emperor_core.c: No such file or directory

tjol commented 13 years ago

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.

gen2brain commented 13 years ago

Here is what happens now: http://pastebin.com/QdwRELPH

tjol commented 13 years ago

--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)

gen2brain commented 13 years ago

I have valac, but gentoo installs that as valac-014, I will make a symlink and try again.

tjol commented 13 years ago

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.

gen2brain commented 13 years ago

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

tjol commented 13 years ago

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.