jjk-jacky / statusnotifier

Library to use KDE's StatusNotifierItem via GObject
Other
25 stars 8 forks source link

The status notifier refuses to build on ubuntu 12.04 #6

Closed Oleksiy-Yakovenko closed 9 years ago

Oleksiy-Yakovenko commented 9 years ago

Hi.

A user of my project asked me to evaluate whether statusnotifier can be used for implementing status icon in KDE.

I tried to build the lib on ubuntu 12.04, and that failed during autogen.sh: gtkdocize is not to be found anywhere, etc.

I can't seem to find any mention of what is the minimal requirements for this library, both for build environment, and for runtime environment.

Would be nice if you provide some build instructions. Thanks.

Oleksiy-Yakovenko commented 9 years ago

Some more info.. I found the gtkdocize, it's in the gtk-doc-tools package.

Errors which I'm getting:

$ ./autogen.sh 
./autogen.sh: 30: ./autogen.sh: Syntax error: "(" unexpected

should be #!/usr/bin/bash instead of /bin/sh?

$ bash autogen.sh 
Running "libtoolize --automake --copy" ... OK
Running "aclocal -I m4" ... FAILED
An error occured, the output below can be found in autogen.log
-------
$ libtoolize --automake --copy
$ aclocal -I m4
configure.ac:4: error: Autoconf version 2.69 or higher is required
configure.ac:4: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63

After removing the autoconf requirement:

$ bash autogen.sh 
Running "libtoolize --automake --copy" ... OK
Running "aclocal -I m4" ... OK
Running "autoheader" ... OK
Running "autoconf" ... OK
Running "automake --add-missing --copy" ... FAILED
An error occured, the output below can be found in autogen.log
-------
$ libtoolize --automake --copy
$ aclocal -I m4
$ autoheader
$ autoconf
$ automake --add-missing --copy
automake: cannot open < gtk-doc.make: No such file or directory

At that point I gave up.

Oleksiy-Yakovenko commented 9 years ago

It turned out the "next" branch works better. I still had to delete the line AC_PREREQ([2.69]) My autoconf version is 2.68, and it works just fine.

The ns-example makefile doesn't see GTK cflags though, had to build it like this:

cd example
gcc `pkg-config --cflags gtk+-3.0` sn-example.c `pkg-config --libs gtk+-3.0` -lstatusnotifier

And... unrelated to this ticket, but running the example doesn't do anything useful -- no icons appear in the notification area.

vovochka404 commented 9 years ago

Have u specified ./configure --enable-example?

Oleksiy-Yakovenko commented 9 years ago

Have u specified ./configure --enable-example?

That worked! thanks.

jjk-jacky commented 9 years ago

Hi,

Right, sorry; gtk-doc is indeed required when building from git (i.e. running autogen.sh), as it's used to build HTML documentation. (Note that in the release tarball said documentation is included, so gtk-doc isn't needed to build from it.) And indeed, a bashism has been fixed in autogen.sh in branch next.

Other than that, statusnotifer needs Glib (w/ GIO & GObject), gdk-pixbuf2 and GDK3 to build/run. (GTK3 is only needed for the example, i.e. with --enable-example)

As for the autoconf requirement, 2.69 was put because that's what I used when creating it, but a lower version might (obviously) be fine. I'll see to lower it, at least to 2.68.

Glad you got it working in the end though! Cheers, -j

Oleksiy-Yakovenko commented 9 years ago

Thanks for the response. This issue is no longer a problem for me, as I have built and evaluated the library. Feel free to close it, unless you want to keep it for tracking purpose.