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
_______________________________________________
Ekiga-devel-list mailing list
Ekiga-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/ekiga-devel-list

Reply via email to