[ekiga] [windows] Update to ptlib/opal v14
- From: Eugen Dedu <ededu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] [windows] Update to ptlib/opal v14
- Date: Fri, 8 Aug 2014 15:17:44 +0000 (UTC)
commit f54fb75231378919a9615d5687af9b3739b39d2f
Author: Eugen Dedu <eugen dedu univ-fcomte fr>
Date: Fri Aug 8 17:13:30 2014 +0200
[windows] Update to ptlib/opal v14
It builds the executable file. Has some hacks, waiting for a correct gtk
3.10 bundle for windows. Does not start on Windows, error about not
founding g_type_class_adjust_private_offset, probably a bug which got
fixed in a more recent version of gtk.
win32/Makefile | 58 ++++++++++++++-------
win32/usegtk3.6.patch | 133 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 171 insertions(+), 20 deletions(-)
---
diff --git a/win32/Makefile b/win32/Makefile
index 6a89fc2..2ce2ee0 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -89,30 +89,30 @@ endif
EKIGA_INSTALLER_DIR := $(EKIGA_DIR)/win32/nsisinstaller
ifeq ($(RELEASE),1)
- OPAL_VER := 3.10.9
- OPAL_URL := http://ftp.gnome.org/pub/gnome/sources/opal/3.10
+ OPAL_VER := 3.14.2
+ OPAL_URL := http://ftp.gnome.org/pub/gnome/sources/opal/3.14
OPAL_ARCHIVE := opal-$(OPAL_VER).tar.xz
OPAL_DIR := $(BUILDROOT)/opal-$(OPAL_VER)
else
- OPAL_VER := 3.10-beta12
+ OPAL_VER := 3.14-beta3
# OPAL_REV: HEAD or revision number
OPAL_REV := HEAD
- OPAL_URL := svn://svn.code.sf.net/p/opalvoip/code/opal/branches/v3_10
+ OPAL_URL := svn://svn.code.sf.net/p/opalvoip/code/opal/branches/v3_14
OPAL_ARCHIVE := opal
OPAL_DIR := $(BUILDROOT)/opal
endif
OPAL_LIB := libopal.$(OPAL_VER).dll
ifeq ($(RELEASE),1)
- PTLIB_VER := 2.10.9
- PTLIB_URL := http://ftp.gnome.org/pub/gnome/sources/ptlib/2.10
+ PTLIB_VER := 2.14.2
+ PTLIB_URL := http://ftp.gnome.org/pub/gnome/sources/ptlib/2.14
PTLIB_ARCHIVE := ptlib-$(PTLIB_VER).tar.xz
PTLIB_DIR := $(BUILDROOT)/ptlib-$(PTLIB_VER)
else
- PTLIB_VER := 2.10-beta12
+ PTLIB_VER := 2.14-beta3
# PTLIB_REV: HEAD or revision number
PTLIB_REV := HEAD
- PTLIB_URL := svn://svn.code.sf.net/p/opalvoip/code/ptlib/branches/v2_10
+ PTLIB_URL := svn://svn.code.sf.net/p/opalvoip/code/ptlib/branches/v2_14
PTLIB_ARCHIVE := ptlib
PTLIB_DIR := $(BUILDROOT)/ptlib
endif
@@ -161,7 +161,7 @@ LIBAV_URL := http://www.libav.org/releases
LIBAV_DIR := $(BUILDROOT)/libav-$(LIBAV_VER)
LIBAV_ARCHIVE := libav-$(LIBAV_VER).tar.xz
-X264_VER := 35cf912
+X264_VER := a5831aa
X264_URL := git://git.videolan.org/x264.git
X264_DIR := $(BUILDROOT)/x264
X264_ARCHIVE := x264
@@ -237,8 +237,12 @@ DOC_LINGUAS :=
confflags := --prefix=$(BUILDROOT) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
+# without --disable-sasl there is a compile error
+# libsasl2.a is found, but sasl.h is not
+# the question is whether we need sasl support or not
+# sasl does not seem to be needed by ptlib
confptlib := $(confflags) --enable-vfw \
- --disable-qos --disable-alsa --disable-esd --disable-oss --disable-sunaudio --disable-shmaudio \
+ --disable-sasl --disable-alsa --disable-esd --disable-oss --disable-sunaudio --disable-shmaudio \
--disable-v4l --disable-v4l2 --disable-bsdvideo --disable-avc --disable-dc
ifeq ($(MINGW32), 1)
confptlib := $(confptlib) --with-directx-includedir=$(EKIGA_DIR)/win32/directx
@@ -406,7 +410,7 @@ else
$(SVN) co $(PTLIB_URL) $(SRCDIR)/$(PTLIB_ARCHIVE) -r $(PTLIB_REV)
endif
-$(PTLIB_DIR)/configure: binaries $(LIBDIR)/libldap.dll $(LIBDIR)/libogg.a $(LIBDIR)/libspeex.a
$(SRCDIR)/$(PTLIB_ARCHIVE) $(LIBDIR)/libexpat.a
+$(PTLIB_DIR)/configure: binaries $(LIBDIR)/libldap.dll $(LIBDIR)/libogg.a $(LIBDIR)/libspeex.a
$(SRCDIR)/$(PTLIB_ARCHIVE) $(LIBDIR)/libexpat.a $(LIBDIR)/libregex.a
rm -rf $(PTLIB_DIR) $(LIBDIR)/$(PTLIB_LIB) $(INCLUDEDIR)/ptclib $(INCLUDEDIR)/ptlib
ifeq ($(RELEASE),1)
tar Jxf $(SRCDIR)/$(PTLIB_ARCHIVE) -C $(BUILDROOT)
@@ -415,16 +419,11 @@ else
endif
# regenerate configure, since it might be older than configure.ac
cd $(PTLIB_DIR); aclocal && autoconf
- cd $(PTLIB_DIR)/plugins; aclocal && autoconf
ifeq ($(MINGW32), 1)
# mingw32 wrongly defines DnsSectionAdditional
sed -i -e 's#\#include <ntverp.h># #g' $(PTLIB_DIR)/include/ptclib/pdns.h
sed -i -e 's#enum { DnsSectionAdditional = DnsSectionAddtional };# #g'
$(PTLIB_DIR)/include/ptclib/pdns.h
endif
-ifeq ($(MINGW32), 0)
- # fix build error appearing with branch <=v2_10, can be removed for >=v2_12
- sed -i -e 's#\#if (WINVER <= 0x502)#\#if (WINVER <= 0x400)#g' $(PTLIB_DIR)/src/ptlib/msos/ethsock.cxx
-endif
touch $@
$(PTLIB_DIR)/config.status: binaries $(PTLIB_DIR)/configure
@@ -432,7 +431,8 @@ $(PTLIB_DIR)/config.status: binaries $(PTLIB_DIR)/configure
cd $(PTLIB_DIR); ./configure $(confptlib)
$(LIBDIR)/$(PTLIB_LIB): binaries $(PTLIB_DIR)/config.status
- $(MAKE) $(MAKEOPTS) VERBOSE=1 -C $(PTLIB_DIR)
+ # use make opt instead of make until ptlib fixes bug where plugins are not built
+ $(MAKE) opt $(MAKEOPTS) VERBOSE=1 -C $(PTLIB_DIR)
$(MAKE) -C $(PTLIB_DIR) install
### libogg
@@ -555,18 +555,31 @@ ifeq ($(RELEASE),1)
else
$(CP) -r $(SRCDIR)/$(OPAL_ARCHIVE) $(OPAL_DIR)
endif
+ # fix build error with isac
+ sed -i -e 's/#elif (defined(WEBRTC_ARCH_X86) \&\& defined(WIN32))/#elif 0 \&\&
(defined(WEBRTC_ARCH_X86) \&\& defined(WIN32))/g' $(OPAL_DIR)/plugins/audio/iSAC/iSAC/os_specific_inline.h
+ # fix build errors with libg722.1
+ ##sed -i -e 's#\#\! /bin/sh#\#\! /bin/sh\nLD=#g' $(OPAL_DIR)/plugins/audio/G.722.1/libg722_1/configure
+ ###sed -i -e 's#rpl_# #g' $(OPAL_DIR)/plugins/audio/G.722.1/libg722_1/configure
+ ###sed -i -e 's#am__api_version='1.13'#am__api_version='1.14'#g'
$(OPAL_DIR)/plugins/audio/G.722.1/libg722_1/configure
+ # try also touch aclocal.m4
+ # fix build errors with opus
+ ###sed -i -e 's#\#\! /bin/sh#\#\! /bin/sh\nLD=#g' $(OPAL_DIR)/plugins/audio/Opus/opus/configure
# regenerate configure, since it might be older than configure.ac
cd $(OPAL_DIR); aclocal && autoconf
cd $(OPAL_DIR)/plugins; aclocal && autoconf
+ #cd $(OPAL_DIR)/plugins/audio/G.722.1/libg722_1; ./autogen.sh
+ #cd $(OPAL_DIR)/plugins/audio/Opus/opus; aclocal && autoconf
touch $@
$(OPAL_DIR)/config.status: binaries $(OPAL_DIR)/configure
rm -f $(LIBDIR)/$(OPAL_LIB)
- cd $(OPAL_DIR); ./configure $(confopal)
+ # g.722.1 gives complex build errors, disable it until it gets fixed
+ cd $(OPAL_DIR); ./configure --disable-g.722.1 $(confopal)
$(LIBDIR)/$(OPAL_LIB): binaries $(OPAL_DIR)/config.status
rm -f $(LIBDIR)/$(OPAL_LIB)
- $(MAKE) $(MAKEOPTS) VERBOSE=1 -C $(OPAL_DIR)
+ # use make opt instead of make until opal fixes bug where plugins are not built
+ $(MAKE) opt $(MAKEOPTS) VERBOSE=1 -C $(OPAL_DIR)
$(MAKE) -C $(OPAL_DIR) install
### gtk bundle
@@ -670,6 +683,8 @@ update-sources::
$(GSTPLUGINSBASE_DIR)/config.status: $(SRCDIR)/$(GSTPLUGINSBASE_ARCHIVE) $(LIBDIR)/pkgconfig/gstreamer-1.0.pc
rm -rf $(GSTPLUGINSBASE_DIR)
tar xf $(SRCDIR)/$(GSTPLUGINSBASE_ARCHIVE) -C $(BUILDROOT)
+ # version 1.2.2 compile error with gcc 4.9: https://github.com/mxe/mxe/commit/34cc814
+ sed -i -e 's#libgstaudioresample_la_CFLAGS =#libgstaudioresample_la_CFLAGS =-msse2#g'
$(GSTPLUGINBASE_DIR)/gst/audioresample/Makefile.am
cd $(GSTPLUGINSBASE_DIR); ./configure $(confflags) --disable-gtk-doc-html
$(LIBDIR)/pkgconfig/gstreamer-plugins-base-1.0.pc: $(GSTPLUGINSBASE_DIR)/config.status
@@ -713,6 +728,9 @@ else
$(CP) -r $(SRCDIR)/$(EKIGA_ARCHIVE) $(EKIGA_DIR)
cd $(EKIGA_DIR); NOCONFIGURE=1 ./autogen.sh # generate configure
endif
+ # until gtk 3.10 bundle works on windows
+ cd $(EKIGA_DIR); patch -p1 <usegtk3.6.patch
+ sed -i -e 's/3.10.0/3.6.0/g' $(EKIGA_DIR)/configure
touch $@
$(EKIGA_DIR)/config.status: binaries $(EKIGA_DIR)/configure \
@@ -774,7 +792,7 @@ $(TARGETDIR)/zips: binaries $(EKIGA_DIR)/src/ekiga.exe
ifeq ($(MINGW32), 1)
cd $(EKIGA_PREFIX); cp /usr/share/doc/mingw32-runtime/mingwm10.dll.gz . && gunzip mingwm10.dll.gz
else
- cp /usr/lib/gcc/i686-w64-mingw32/4.8/libgcc_s_sjlj-1.dll
/usr/lib/gcc/i686-w64-mingw32/4.8/libstdc++-6.dll /usr/i686-w64-mingw32/lib/libwinpthread-1.dll
$(EKIGA_PREFIX)
+ cp /usr/lib/gcc/i686-w64-mingw32/4.9-win32/libgcc_s_sjlj-1.dll
/usr/lib/gcc/i686-w64-mingw32/4.9-win32/libstdc++-6.dll $(EKIGA_PREFIX)
endif
ifeq ($(DEBUG),0)
diff --git a/win32/usegtk3.6.patch b/win32/usegtk3.6.patch
new file mode 100644
index 0000000..dc26d9d
--- /dev/null
+++ b/win32/usegtk3.6.patch
@@ -0,0 +1,133 @@
+diff -r --exclude .git -u ../sshtrunk/lib/engine/gui/gtk-frontend/chat-area.cpp
ekiga/lib/engine/gui/gtk-frontend/chat-area.cpp
+--- ../sshtrunk/lib/engine/gui/gtk-frontend/chat-area.cpp 2014-05-11 18:40:22.058387345 +0200
++++ ekiga/lib/engine/gui/gtk-frontend/chat-area.cpp 2014-05-15 11:26:41.145462923 +0200
+@@ -831,8 +831,8 @@
+ FALSE, TRUE, 2);
+
+ /* the BOLD button */
+- button = gtk_button_new_from_icon_name ("format-text-bold",
+- GTK_ICON_SIZE_BUTTON);
++ button = gtk_button_new ();//_from_icon_name ("format-text-bold",
++ //GTK_ICON_SIZE_BUTTON);
+ g_object_set_data_full (G_OBJECT (button), "gm_open_tag",
+ (gpointer) "<b>", NULL);
+ g_object_set_data_full (G_OBJECT (button), "gm_close_tag",
+@@ -846,8 +846,8 @@
+ gtk_widget_show (button);
+
+ /* the ITALIC button */
+- button = gtk_button_new_from_icon_name ("format-text-italic",
+- GTK_ICON_SIZE_BUTTON);
++ button = gtk_button_new ();//"format-text-italic",
++ //GTK_ICON_SIZE_BUTTON);
+ g_object_set_data_full (G_OBJECT (button), "gm_open_tag",
+ (gpointer) "<i>", NULL);
+ g_object_set_data_full (G_OBJECT (button), "gm_close_tag",
+@@ -861,8 +861,8 @@
+ gtk_widget_show (button);
+
+ /* the UNDERLINE button */
+- button = gtk_button_new_from_icon_name ("format-text-underline",
+- GTK_ICON_SIZE_BUTTON);
++ button = gtk_button_new ();//_from_icon_name ("format-text-underline",
++ //GTK_ICON_SIZE_BUTTON);
+ g_object_set_data_full (G_OBJECT (button), "gm_open_tag",
+ (gpointer) "<u>", NULL);
+ g_object_set_data_full (G_OBJECT (button), "gm_close_tag",
+diff -r --exclude .git -u ../sshtrunk/lib/engine/gui/gtk-frontend/chat-window.cpp
ekiga/lib/engine/gui/gtk-frontend/chat-window.cpp
+--- ../sshtrunk/lib/engine/gui/gtk-frontend/chat-window.cpp 2014-03-03 16:04:22.393857464 +0100
++++ ekiga/lib/engine/gui/gtk-frontend/chat-window.cpp 2014-05-15 11:26:41.145462923 +0200
+@@ -140,7 +140,7 @@
+ {
+ self->priv->visible_conversation_connection.disconnect ();
+
+- GtkWidget* page = gtk_stack_get_visible_child (GTK_STACK (self->priv->stack));
++ /*GtkWidget* page = gtk_stack_get_visible_child (GTK_STACK (self->priv->stack));
+
+ if (IS_CONVERSATION_PAGE (page)) {
+
+@@ -148,7 +148,7 @@
+
+ self->priv->visible_conversation_connection = conversation->updated.connect (boost::bind
(&on_visible_conversation_updated, self));
+ chat_window_update_menu (self, conversation);
+- }
++ }*/
+ }
+
+ static void
+@@ -195,9 +195,9 @@
+ g_signal_connect (page, "updated",
+ G_CALLBACK (on_unread_count_updated), self);
+
+- gtk_stack_add_titled (GTK_STACK (self->priv->stack),
++ /*gtk_stack_add_titled (GTK_STACK (self->priv->stack),
+ page, name.c_str (),
+- conversation_page_get_title (CONVERSATION_PAGE (page)));
++ conversation_page_get_title (CONVERSATION_PAGE (page)));*/
+ gtk_widget_show_all (page);
+
+ self->priv->connections.add (conversation->user_requested.connect (boost::bind
(&on_some_conversation_user_requested, self, name)));
+@@ -209,7 +209,7 @@
+ on_some_conversation_user_requested (ChatWindow* self,
+ const std::string name)
+ {
+- gtk_stack_set_visible_child_name (GTK_STACK (self->priv->stack), name.c_str ());
++ //gtk_stack_set_visible_child_name (GTK_STACK (self->priv->stack), name.c_str ());
+ gtk_widget_show (GTK_WIDGET (self));
+ gtk_window_present (GTK_WINDOW (self));
+ }
+@@ -320,10 +320,10 @@
+ FALSE, FALSE, 0);
+ gtk_widget_show (self->priv->gear);
+
+- GtkWidget* switcher = gtk_stack_switcher_new ();
++ /*GtkWidget* switcher = gtk_stack_switcher_new ();
+ gtk_box_pack_start (GTK_BOX (hbox), switcher,
+ FALSE, TRUE, 0);
+- gtk_widget_show (switcher);
++ gtk_widget_show (switcher);
+
+ self->priv->stack = gtk_stack_new ();
+ gtk_stack_switcher_set_stack (GTK_STACK_SWITCHER (switcher), GTK_STACK (self->priv->stack));
+@@ -332,7 +332,7 @@
+ gtk_widget_show (self->priv->stack);
+ g_signal_connect (self->priv->stack, "notify::visible-child",
+ G_CALLBACK (on_visible_conversation_changed), self);
+-
++ */
+ boost::shared_ptr<Ekiga::ChatCore> chat_core =
+ core.get<Ekiga::ChatCore> ("chat-core");
+ self->priv->connections.add (chat_core->dialect_added.connect (boost::bind (&on_dialect_added, self,
_1)));
+diff -r --exclude .git -u ../sshtrunk/lib/engine/gui/gtk-frontend/conversation-page.cpp
ekiga/lib/engine/gui/gtk-frontend/conversation-page.cpp
+--- ../sshtrunk/lib/engine/gui/gtk-frontend/conversation-page.cpp 2014-03-03 16:04:22.393857464 +0100
++++ ekiga/lib/engine/gui/gtk-frontend/conversation-page.cpp 2014-05-15 11:26:41.145462923 +0200
+@@ -90,9 +90,9 @@
+ self->priv->title = g_strdup_printf ("%s",
+ self->priv->conversation->get_title ().c_str ());
+ }
+- gtk_header_bar_set_title (GTK_HEADER_BAR (self->priv->header), self->priv->title);
+- gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self->priv->header),
+- self->priv->conversation->get_status ().c_str ());
++ //gtk_header_bar_set_title (GTK_HEADER_BAR (self->priv->header), self->priv->title);
++ //gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self->priv->header),
++ // self->priv->conversation->get_status ().c_str ());
+ }
+
+ static void
+@@ -151,11 +151,11 @@
+
+ result->priv->connections.add (conversation->updated.connect (boost::bind (&on_conversation_updated,
result)));
+
+- header = gtk_header_bar_new ();
+- result->priv->header = header;
+- gtk_box_pack_start (GTK_BOX (result), header,
+- FALSE, FALSE, 2);
+- gtk_widget_show (header);
++ //header = gtk_header_bar_new ();
++ //result->priv->header = header;
++ //gtk_box_pack_start (GTK_BOX (result), header,
++ // FALSE, FALSE, 2);
++ //gtk_widget_show (header);
+
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
+ gtk_box_pack_start (GTK_BOX (result), box,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]