[Ekiga-devel-list] Building trunk in home 2
- From: Eugen Dedu <Eugen Dedu pu-pm univ-fcomte fr>
- To: Ekiga mailing list <ekiga-devel-list gnome org>
- Subject: [Ekiga-devel-list] Building trunk in home 2
- Date: Sun, 13 Apr 2008 12:52:05 +0200
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]