Failing to compile on Debian testing (aka jessie)

Asked by Thierry

I am trying to compile diodon 1.3.0 on Debian jessie.

I have installed the following pre-requisites:
    sudo apt-get install build-essential gettext intltool libglib2.0-dev valac
    sudo aptitude build-dep diodon
    sudo aptitude install libgee-0.8-dev libzeitgeist-2.0-dev

Here is the error message I get:

$ ./waf configure --prefix=/opt/diodon-1.3.0
Setting top to : /home/thierry/compil2/diodon-1.3.0
Setting out to : /home/thierry/compil2/diodon-1.3.0/_build_
Checking for 'c_bgxlc' (c compiler) : not found
Checking for 'gcc' (c compiler) : /usr/bin/gcc
Checking for program msgfmt : /usr/bin/msgfmt
Checking for program perl : /usr/bin/perl
Checking for 'intltool-merge' : /usr/bin/intltool-merge
Checking for header locale.h : yes
Checking for program glib-genmarshal : /usr/bin/glib-genmarshal
Checking for program perl : /usr/bin/perl
Checking for 'glib-mkenums' : /usr/bin/glib-mkenums
Checking for program glib-compile-schemas : /usr/bin/glib-compile-schemas
Checking for program valac-0.20 : not found
Checking for program valac : /usr/bin/valac
Checking for valac version >= (0, 20, 0) : (0, 26, 1)
Checking for program pkg-config : /usr/bin/pkg-config
Checking for 'gdk-3.0' >= 3.0.8 : yes
Checking for 'gdk-x11-3.0' >= 3.0.8 : yes
Checking for 'gee-0.8' >= 0.10.5 : yes
Checking for 'libpeas-1.0' >= 1.1.0 : yes
Checking for 'libpeas-gtk-1.0' >= 1.1.0 : yes
Checking for 'gio-2.0' >= 2.32.0 : yes
Checking for 'gio-unix-2.0' >= 2.32.0 : yes
Checking for 'glib-2.0' >= 2.32.0 : yes
Checking for 'gtk+-3.0' >= 3.0.8 : yes
Checking for 'x11' >= 1.3.2 : yes
Checking for 'xtst' >= 1.2.0 : yes
Checking for 'zeitgeist-2.0' >= 0.9.14 : yes
Checking for 'appindicator3-0.1' >= 0.3.0 : yes
'configure' finished successfully (0.440s)

$ ./waf build
Waf: Entering directory `/home/thierry/compil2/diodon-1.3.0/_build_'
Traceback (most recent call last):
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Scripting.py", line 138, in waf_entry_point
    run_commands()
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Scripting.py", line 231, in run_commands
    run_command(cmd_name)
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Scripting.py", line 216, in run_command
    ctx.execute()
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Scripting.py", line 551, in execute
    return execute_method(self)
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Build.py", line 220, in execute
    self.execute_build()
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Build.py", line 234, in execute_build
    self.pre_build()
  File "/home/thierry/compil2/diodon-1.3.0/waflib/Build.py", line 514, in pre_build
    m(self)
  File "/home/thierry/compil2/diodon-1.3.0/wscript", line 138, in setup_tests
    error = ctx.dbus.run()
  File "/home/thierry/compil2/diodon-1.3.0/wscript", line 256, in run
    return self._run()
  File "/home/thierry/compil2/diodon-1.3.0/wscript", line 242, in _run
    stderr=devnull, stdout=devnull
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
$

I could not find yet any help on google. Thank for your help to compile diodon. I want version 1.3.0 because of bug https://bugs.launchpad.net/diodon/+bug/1377490

Thanks

Question information

Language:
English Edit question
Status:
Solved
For:
Diodon Edit question
Assignee:
No assignee Edit question
Solved by:
Oliver Sauder
Solved:
Last query:
Last reply:
Revision history for this message
Best Oliver Sauder (sao) said :
#1

You also need Xvfb to run the tests.

sudo apt-get install xvfb

Hope this works. I have to see how this can be added to dependency check as well.

Revision history for this message
Thierry (thdox) said :
#2

Thank you! Indeed, installing xvfb makes things progress, as I can now compile.

cd diodon-1.3.0
./waf configure --prefix=/opt/diodon-1.3.0
./waf build
sudo checkinstall sudo ./waf install

But I cannot launch diodon, I get the error below. Any clue?

$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/diodon-1.3.0/lib/
$ export LD_LIBRARY_PATH
$ /opt/diodon-1.3.0/bin/diodon
Failed to register: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: L'interface « org.gtk.Actions » n'existe pas pour l'objet à l'emplacement /net/launchpad/Diodon

Revision history for this message
Oliver Sauder (sao) said :
#3

It is not a good idea to change the prefix to a none standard location.. problem is that Diodon depends on DBus and Gschema settings which have to be in a certain location to work properly - and those usually support /usr/local which is the default but not any random location.

Please try simply the following:
./waf configure
./waf build
sudo checkinstall sudo ./waf install

you do not have to worry you can always uninstall it with
sudo ./waf uninstall

Let me know whether this works.

Revision history for this message
Thierry (thdox) said :
#4

I followed your instruction to use /usr/local, and I was able to compile, install, and run! :-)

FWIW, /usr/local vs /opt is an holly war, like emacs vs vi. Saying, like you did, that /opt is either "non standard location" or "random location" is close to saying that vi (or emacs) is a random non standard editor. You may face some religious advocate. I am not. :-)

Revision history for this message
Thierry (thdox) said :
#5

Thanks Oliver Sauder, that solved my question.

Revision history for this message
Oliver Sauder (sao) said :
#6

Good that it works now... I certainly didn't intend to start a war.... :) I actually do not mind what location a application gets installed it is simply that Diodon depends on libraries which do not support /opt to run properly.