[Ekiga-devel-list] Building trunk in home 2



Hi,

I am compiling ptlib, opal and ekiga, all from svn of yesterday.  My
final goal (I hope to reach it) is to build very soon (unofficial) debian packages for them. Thanks to the wiki page and previous post about compiling, I have managed to generate the ekiga executable, but with errors.

Compilation commands (without being root and without ffmpeg for the moment):
- svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
- cd ptlib
- ./configure --enable-plugins --enable-v4l2=yes --enable-sunaudio=no
  --disable-sdl --prefix=`pwd`
- make
- cd ..
- svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk opal
- cd opal
- ./configure --prefix=`pwd`
- make
- cd ..
- svn co http://svn.gnome.org/svn/ekiga/trunk ekiga
- cd ekiga
- export PKG_CONFIG_PATH=/home/dedu/softs/ptlib:/home/dedu/softs/opal
- ./autogen.sh --disable-doc --disable-avahi --disable-dbus --prefix=`pwd`
- make
- src/ekiga

During compilation/linking/execution, I receive the following errors:

1. In opal: opal.pc contains the line:
 Cflags: -I${includedir}/opal
This line should be:
 Cflags: -I${includedir}

2. I have a compilation error (ptlib.h not found):

Making all in skel
make[6]: Entering directory `/home/dedu/softs/ekiga/lib/engine/display/skel'
/bin/sh ../../../../libtool --tag=CXX   --mode=compile g++
-DHAVE_CONFIG_H -I. -I../../../.. -I../../../../lib/gmconf
-I../../../../lib/engine/include -I../../../../lib/engine/framework
-I../../../../lib/engine/display/skel   -I/usr/include/sigc++-2.0
-I/usr/lib/sigc++-2.0/include   -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include   -g -O2 -Wall -Wextra -Winit-self
-Wswitch-default -Wswitch-enum -Wstrict-aliasing=2 -Wfloat-equal
-Wshadow -MT display-core.lo -MD -MP -MF .deps/display-core.Tpo -c -o
display-core.lo `test -f
'../../../../lib/engine/display/skel/display-core.cpp' || echo
'./'`../../../../lib/engine/display/skel/display-core.cpp
 g++ -DHAVE_CONFIG_H -I. -I../../../.. -I../../../../lib/gmconf
-I../../../../lib/engine/include -I../../../../lib/engine/framework
-I../../../../lib/engine/display/skel -I/usr/include/sigc++-2.0
-I/usr/lib/sigc++-2.0/include -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -O2 -Wall -Wextra -Winit-self
-Wswitch-default -Wswitch-enum -Wstrict-aliasing=2 -Wfloat-equal
-Wshadow -MT display-core.lo -MD -MP -MF .deps/display-core.Tpo -c
../../../../lib/engine/display/skel/display-core.cpp  -fPIC -DPIC -o
.libs/display-core.o
In file included from
../../../../lib/engine/display/skel/display-core.cpp:42:
../../../../lib/engine/display/skel/display-core.h:52:25: error:
ptbuildopts.h: No such file or directory
../../../../lib/engine/display/skel/display-core.h:53:19: error:
ptlib.h: No such file or directory
In file included from
../../../../lib/engine/display/skel/display-core.cpp:42:
../../../../lib/engine/display/skel/display-core.h:156: error: ‘PMutex’
does not name a type

This comes from the file display-core.h:
#include <glib.h>

//FIXME
#include "ptbuildopts.h"
#include "ptlib.h"

3. The same compilation error (ptlib.h not found) appears when compiling files in directories:
/home/dedu/softs/ekiga/lib/engine/vidinput, subdirs skel, mlogo, ptlib
/home/dedu/softs/ekiga/lib/engine/audioinput, subdirs skel, mlogo, ptlib
/home/dedu/softs/ekiga/lib/engine/audiooutput, subdirs skel, mlogo, ptlib

As a workaround, I have added -I/home/dedu/softs/ptlib/include at the end of the line CXXFLAGS=... in the Makefile of these directories.

4. During linking, it uses -lopal and -lpt, but the libraries in pt and opal have other (long) names. To cope with this, I executed:
snoopy:~/softs/opal/lib$ ln -s libopal_linux_x86_64_r_s.a libopal.a
snoopy:~/softs/ptlib/lib$ ln -s libpt_linux_x86_64_r_s.a libpt.a

5. During the linking, I have many errors about "undefined reference to 'SHA1_Init'" (and other functions). I added -lssl at the end of the line to cope with this issue.

6. During linking too, it prints the error:
/home/dedu/softs/ptlib/lib/libpt.a(object.o): In function `PAssertFunc(char const*, int, char const*, char const*)': object.cxx:(.text+0x1ee): multiple definition of `PAssertFunc(char const*, int, char const*, char const*)'
misc.o:/home/dedu/softs/ekiga/src/gui/misc.cpp:126: first defined here
collect2: ld returned 1 exit status

PAssertFunc seems to be defined twice:
- once in ptlib
- once in ekiga/src/gui/misc.cpp:126, where it is inside a
#ifndef STATIC_LIBS_USED

(Also, there are functions caled gnomemeeting there :o)

As a workaround, I commented out the function in ekiga source.

7. At startup, ekiga shows the following window (I had previously used ekiga debian 2.0.11-2): "Ekiga got an invalid value for the configuration key "/apps/ekiga/general/gconf_test_age".

It probably means that your configuration schemas have not been correctly installed or that the permissions are not correct.

Please check the FAQ (http://www.ekiga.org/), the troubleshooting section of the GConf site (http://www.gnome.org/projects/gconf/) or the mailing list archives for more information (http://mail.gnome.org) about this problem."

and the following errors on the terminal:
snoopy:~/softs/ekiga$ src/ekiga
audiooutput-core.cpp(392)	AudioOutputCore	Closing current device
audioinput-core.cpp(322)	AudioInputCore	Stopping Stream
audioinput-core.cpp(325)	AudioInputCore	Trying to stop stream in wrong state

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_list: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_int: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_int: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_int: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_int: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_string: assertion `value != NULL' failed

(ekiga:21352): GConf-CRITICAL **: gconf_value_get_int: assertion `value != NULL' failed audiooutput-core.cpp(158) AudioOutputCore Setting device[0]: Default/Default/Default audiooutput-core.cpp(158) AudioOutputCore Setting device[1]: Default/Default/Default audioinput-core.cpp(209) AudioInputCore Setting device: Default/Default/Default
Segmentation fault

But I do not have such a key:
snoopy:~$ grep -r test_age .gconf

I looked at http://www.ekiga.org/index.php?rub=3&pos=0&faqpage=x201.html#AEN264 (GConf errors on ekiga):
- killing gconf doesn't fix the problem
- /etc/gconf/gconf.xml.defaults/ directory is already 755 (4755??)
- what are the gconf flags to compile ekiga? I have compiled with ./autogen.sh --disable-doc --disable-avahi --disable-dbus --prefix=`pwd`
and ekiga has gconf support:
snoopy:~/softs/ekiga$ grep -i gconf config.h
/* GConf support */
#define HAVE_GCONF 1
- as about gconf working properly, I haven't touch at it after installing a fresh debian system, so I suppose it's ok

I tried also (http://forum.ubuntu-fr.org/viewtopic.php?id=154833):
gconftool-2 -u /apps/ekiga/general/gconf_test_age
killall -9 gconfd-2 (without sudo)

I started ekiga as root also, without succes...

I looked at the code
- src/gui/main.cpp:4385, gnomemeeting_conf_check () returns FALSE
- src/gui/conf.cpp:205, gnomemeeting_conf_check calls gm_conf_get_int (...test_age), which in turn calls gconf_client_get_int. This function returns 0, so ekiga stops with error.

But this function returns 0 not only when there is an error, but also when the key test_age does not exist (or have a non integer type), which is my case. Should this key exist?? Why does ekiga stops if this key does not have a certain value?

As a workaround, I removed the tests whether this key exists or not.

8. The config assistant appears, but a few seconds later the program receives seg fault. Here is the backtrace with gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2b600e2c6120 (LWP 5105)]
0x00002b6007ee0090 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0x00002b6007ee0090 in strlen () from /lib/libc.so.6
#1  0x00000000007e1cd7 in motion_detection_cb (data=0x14ae7b0)
    at /usr/include/c++/4.2/bits/char_traits.h:258
#2  0x00002b60068c581b in ?? () from /usr/lib/libglib-2.0.so.0
#3 0x00002b60068c50f2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#4  0x00002b60068c8396 in ?? () from /usr/lib/libglib-2.0.so.0
#5  0x00002b60068c8657 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#6  0x00002b6004bfdb63 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#7  0x00000000007e08c8 in main (argc=<value optimized out>,
argv=<value optimized out>, envp=<value optimized out>) at gui/main.cpp:4488
(gdb)

As threads are involved, I do not know if this bt is really useful.

I stop here my investigation, because I do not know if the segfault is due to gconf code or not.

Best regards,
--
Eugen Dedu


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]