summaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
Diffstat (limited to 'network')
-rw-r--r--network/ekiga/ekiga-4.0.1-boost-signals2.patch2179
-rw-r--r--network/ekiga/ekiga-4.0.1-gcc10.patch11
-rw-r--r--network/ekiga/ekiga-4.0.1-libresolv.patch13
-rw-r--r--network/ekiga/ekiga.SlackBuild5
4 files changed, 2207 insertions, 1 deletions
diff --git a/network/ekiga/ekiga-4.0.1-boost-signals2.patch b/network/ekiga/ekiga-4.0.1-boost-signals2.patch
new file mode 100644
index 0000000000..026495cdf5
--- /dev/null
+++ b/network/ekiga/ekiga-4.0.1-boost-signals2.patch
@@ -0,0 +1,2179 @@
+Patch by Robert Scheck <robert@fedoraproject.org> for Ekiga 4.0.1, which backports
+the following upstream commits (with some minor downstream-only changes to get the
+Ekiga building) for Boost.Signals2 support:
+
+ - https://github.com/GNOME/ekiga/commit/12641b735a9886a080949465d4da6d4569822ed2
+ - https://github.com/GNOME/ekiga/commit/44ef7c66d055d01bede6627a8b31e4135f54f807
+ - https://github.com/GNOME/ekiga/commit/95e2daa3953355118abec5a30fb2642a105705b2
+ - https://github.com/GNOME/ekiga/commit/aabf103dcf7f0e61ed1903bc4f37f1dd549fb2ef
+ - https://github.com/GNOME/ekiga/commit/b8ea1fe8c15a4fa6a8bfde5e8b51febc74f8e529
+
+This backport makes sense, because unfortunately upstream didn't release anything
+after Ekiga 4.0.1, while 8c954b8ab3a771900f125375ba652afaf1966d19 just immediately
+ends with a segmentation fault (which is the latest Git commit as of writing). And
+openSUSE uses 8c954b8ab3a771900f125375ba652afaf1966d19 from a few months after the
+Ekiga 4.0.1 release, but with Boost.Signals2 support. While this Git commit leads
+even to a starting Ekiga, a not picked up inbound ringing phone call leads sooner
+or later to a segmentation fault (the caller needs to hit the correct point before
+hanging up and it thus takes sometimes 2-3 tries until it crashes). Aside of that,
+there are graphical glitches in the popup/dialog when actually having a call. And
+finally quitting Ekiga sometimes also ends with yet another segmentation fault...
+
+While I fortunately didn't see any of the above mentioned issues with Ekiga 4.0.1
+and this Boost.Signals2 backport patch, any before existing old Ekiga 4.0.1 issues
+will exist further on for sure...
+
+--- ekiga-4.0.1/configure.ac 2019-05-16 20:32:30.610373983 +0200
++++ ekiga-4.0.1/configure.ac.boost-signals2 2019-05-16 22:11:08.958062692 +0200
+@@ -173,15 +173,16 @@
+ dnl ###############################
+ dnl Mandatory BOOST support
+ dnl ###############################
+-AX_BOOST_BASE([1.34])
+-AX_BOOST_SIGNALS
++AX_BOOST_BASE([1.53])
+
+-if test "x${ax_cv_boost_signals}" == "xno"; then
+- AC_MSG_ERROR([You need the boost signals library to compile Ekiga])
+-fi
++CPPFLAGS_save="$CPPFLAGS"
++CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
++AC_CHECK_HEADER(boost/signals2.hpp,, found_signals2=no)
++CPPFLAGS="$CPPFLAGS_save"
+
+-BOOST_LIBS="${BOOST_SIGNALS_LIB}"
+-AC_SUBST(BOOST_LIBS)
++if test "x$found_signals2" = "xno"; then
++ AC_MSG_ERROR([Could not find BOOST signals2 headers])
++fi
+
+
+ dnl ###############################
+@@ -722,6 +723,13 @@
+ AC_MSG_ERROR([You need ptlib expat support to compile ekiga])
+ fi
+
++# Make sure ptlib and opal don't force no-exceptions,
++# as we need them for boost's signals2
++PTLIB_CFLAGS="$PTLIB_CFLAGS -fexceptions"
++AC_SUBST(PTLIB_CFLAGS)
++OPAL_CFLAGS="$OPAL_CFLAGS -fexceptions"
++AC_SUBST(OPAL_CFLAGS)
++
+ SUFFIX=
+ AC_ARG_ENABLE([opal-debug],
+ [AS_HELP_STRING([--enable-opal-debug],[link to debug versions of opal and ptlib (opal_d and ptlib_d) (default is disabled)])],
+--- ekiga-4.0.1/lib/engine/account/account-core.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/account/account-core.h.boost-signals2 2019-05-16 20:34:25.949622624 +0200
+@@ -106,26 +106,26 @@
+
+ /** This signal is emitted when a bank has been added to the core
+ */
+- boost::signal1<void, BankPtr> bank_added;
++ boost::signals2::signal<void(BankPtr)> bank_added;
+
+ /** This signal is emitted when a bank has been removed from the core
+ */
+- boost::signal1<void, BankPtr> bank_removed;
++ boost::signals2::signal<void(BankPtr)> bank_removed;
+
+ /** This signal is emitted when a account has been added to one of
+ * the banks
+ */
+- boost::signal2<void, BankPtr, AccountPtr> account_added;
++ boost::signals2::signal<void(BankPtr, AccountPtr)> account_added;
+
+ /** This signal is emitted when a account has been removed from one of
+ * the banks
+ */
+- boost::signal2<void, BankPtr, AccountPtr> account_removed;
++ boost::signals2::signal<void(BankPtr, AccountPtr)> account_removed;
+
+ /** This signal is emitted when a account has been updated in one of
+ * the banks
+ */
+- boost::signal2<void, BankPtr, AccountPtr> account_updated;
++ boost::signals2::signal<void(BankPtr, AccountPtr)> account_updated;
+
+ private:
+
+@@ -147,7 +147,7 @@
+ /** This signal is emitted when the AccountCore Service has been
+ * updated.
+ */
+- boost::signal0<void> updated;
++ boost::signals2::signal<void(void)> updated;
+
+
+ /** This chain allows the AccountCore to present forms to the user
+--- ekiga-4.0.1/lib/engine/account/bank.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/account/bank.h.boost-signals2 2019-05-16 20:35:52.157810900 +0200
+@@ -74,15 +74,15 @@
+
+ /** This signal is emitted when a account has been added.
+ */
+- boost::signal1<void, AccountPtr> account_added;
++ boost::signals2::signal<void(AccountPtr)> account_added;
+
+ /** This signal is emitted when a account has been removed.
+ */
+- boost::signal1<void, AccountPtr> account_removed;
++ boost::signals2::signal<void(AccountPtr)> account_removed;
+
+ /** This signal is emitted when a account has been updated.
+ */
+- boost::signal1<void, AccountPtr> account_updated;
++ boost::signals2::signal<void(AccountPtr)> account_updated;
+
+ /** This chain allows the BankImpl to present forms to the user
+ */
+--- ekiga-4.0.1/lib/engine/account/bank-impl.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/account/bank-impl.h.boost-signals2 2019-05-16 20:34:41.093655548 +0200
+@@ -74,7 +74,7 @@
+ template<class AccountType = Account>
+ class BankImpl:
+ public Bank,
+- public boost::signals::trackable,
++ public boost::signals2::trackable,
+ protected RefLister<AccountType>
+ {
+
+--- ekiga-4.0.1/lib/engine/addressbook/book.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/addressbook/book.h.boost-signals2 2019-05-16 20:36:30.212894662 +0200
+@@ -92,17 +92,17 @@
+
+ /** This signal is emitted when a Contact has been added to the Book.
+ */
+- boost::signal1<void, ContactPtr > contact_added;
++ boost::signals2::signal<void(ContactPtr)> contact_added;
+
+
+ /** This signal is emitted when a Contact has been removed from the Book.
+ */
+- boost::signal1<void, ContactPtr > contact_removed;
++ boost::signals2::signal<void(ContactPtr)> contact_removed;
+
+
+ /** This signal is emitted when a Contact has been updated in the Book.
+ */
+- boost::signal1<void, ContactPtr > contact_updated;
++ boost::signals2::signal<void(ContactPtr)> contact_updated;
+ };
+
+ typedef boost::shared_ptr<Book> BookPtr;
+--- ekiga-4.0.1/lib/engine/addressbook/contact-core.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/addressbook/contact-core.cpp.boost-signals2 2019-05-16 21:26:27.190245510 +0200
+@@ -50,7 +50,7 @@
+
+ Ekiga::ContactCore::~ContactCore ()
+ {
+- for (std::list<boost::signals::connection>::iterator iter = conns.begin (); iter != conns.end (); ++iter)
++ for (std::list<boost::signals2::connection>::iterator iter = conns.begin (); iter != conns.end (); ++iter)
+ iter->disconnect ();
+ }
+
+--- ekiga-4.0.1/lib/engine/addressbook/contact-core.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/addressbook/contact-core.h.boost-signals2 2019-05-16 21:26:20.542228371 +0200
+@@ -118,37 +118,37 @@
+ /** This signal is emitted when a Ekiga::Source has been
+ * added to the ContactCore Service.
+ */
+- boost::signal1<void, SourcePtr > source_added;
++ boost::signals2::signal<void(SourcePtr)> source_added;
+
+ /** This signal is emitted when a book has been added to one of
+ * the sources
+ */
+- boost::signal2<void, SourcePtr, BookPtr > book_added;
++ boost::signals2::signal<void(SourcePtr, BookPtr )> book_added;
+
+ /** This signal is emitted when a book has been removed from one of
+ * the sources
+ */
+- boost::signal2<void, SourcePtr, BookPtr > book_removed;
++ boost::signals2::signal<void(SourcePtr, BookPtr )> book_removed;
+
+ /** This signal is emitted when a book has been updated in one of
+ * the sources
+ */
+- boost::signal2<void, SourcePtr, BookPtr > book_updated;
++ boost::signals2::signal<void(SourcePtr, BookPtr )> book_updated;
+
+ /** This signal is emitted when a contact has been added to one of
+ * the book of one of the sources
+ */
+- boost::signal3<void, SourcePtr, BookPtr, ContactPtr > contact_added;
++ boost::signals2::signal<void(SourcePtr, BookPtr, ContactPtr )> contact_added;
+
+ /** This signal is emitted when a contact has been removed from one of
+ * the book of one of the sources
+ */
+- boost::signal3<void, SourcePtr, BookPtr, ContactPtr > contact_removed;
++ boost::signals2::signal<void(SourcePtr, BookPtr, ContactPtr )> contact_removed;
+
+ /** This signal is emitted when a contact has been updated in one of
+ * the book of one of the sources
+ */
+- boost::signal3<void, SourcePtr, BookPtr, ContactPtr > contact_updated;
++ boost::signals2::signal<void(SourcePtr, BookPtr, ContactPtr )> contact_updated;
+
+ private:
+
+@@ -174,7 +174,7 @@
+ std::list<boost::shared_ptr<ContactDecorator> > contact_decorators;
+
+ /*** Misc stuff ***/
+- std::list<boost::signals::connection> conns;
++ std::list<boost::signals2::connection> conns;
+ };
+
+ /**
+--- ekiga-4.0.1/lib/engine/addressbook/source.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/addressbook/source.h.boost-signals2 2019-05-16 20:38:37.038176631 +0200
+@@ -63,32 +63,32 @@
+
+ /** This signal is emitted when a Book has been added to the Source.
+ */
+- boost::signal1<void, BookPtr > book_added;
++ boost::signals2::signal<void(BookPtr)> book_added;
+
+
+ /** This signal is emitted when a Book has been updated in the Source.
+ */
+- boost::signal1<void, BookPtr > book_updated;
++ boost::signals2::signal<void(BookPtr)> book_updated;
+
+
+ /** This signal is emitted when a Book has been removed in the Source.
+ */
+- boost::signal1<void, BookPtr > book_removed;
++ boost::signals2::signal<void(BookPtr)> book_removed;
+
+ /** This signal is emitted when a Contact has been added to a book in
+ * this source.
+ */
+- boost::signal2<void, BookPtr, ContactPtr > contact_added;
++ boost::signals2::signal<void(BookPtr, ContactPtr )> contact_added;
+
+ /** This signal is emitted when a Contact has been removed from a book in
+ * this source.
+ */
+- boost::signal2<void, BookPtr, ContactPtr > contact_removed;
++ boost::signals2::signal<void(BookPtr, ContactPtr )> contact_removed;
+
+ /** This signal is emitted when a Contact has been updated in a book in
+ * this source
+ */
+- boost::signal2<void, BookPtr, ContactPtr > contact_updated;
++ boost::signals2::signal<void(BookPtr, ContactPtr )> contact_updated;
+ };
+
+ typedef boost::shared_ptr<Source> SourcePtr;
+--- ekiga-4.0.1/lib/engine/audioinput/audioinput-core.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/audioinput/audioinput-core.h.boost-signals2 2019-05-16 20:39:25.511285526 +0200
+@@ -136,7 +136,7 @@
+ /** This signal is emitted when a Ekiga::AudioInputManager has been
+ * added to the AudioInputCore Service.
+ */
+- boost::signal1<void, AudioInputManager &> manager_added;
++ boost::signals2::signal<void(AudioInputManager &)> manager_added;
+
+
+ /*** AudioInput Device Management ***/
+@@ -254,23 +254,23 @@
+
+ /** See audioinput-manager.h for the API
+ */
+- boost::signal3<void, AudioInputManager &, AudioInputDevice &, AudioInputSettings&> device_opened;
+- boost::signal2<void, AudioInputManager &, AudioInputDevice &> device_closed;
+- boost::signal3<void, AudioInputManager &, AudioInputDevice &, AudioInputErrorCodes> device_error;
++ boost::signals2::signal<void(AudioInputManager &, AudioInputDevice &, AudioInputSettings&)> device_opened;
++ boost::signals2::signal<void(AudioInputManager &, AudioInputDevice &)> device_closed;
++ boost::signals2::signal<void(AudioInputManager &, AudioInputDevice &, AudioInputErrorCodes)> device_error;
+
+ /** This signal is emitted when an audio device input has been added to the system.
+ * This signal will be emitted if add_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the audio input device that was added.
+ */
+- boost::signal2<void, AudioInputDevice, bool> device_added;
++ boost::signals2::signal<void(AudioInputDevice, bool)> device_added;
+
+ /** This signal is emitted when an audio input device has been removed from the system.
+ * This signal will be emitted if remove_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the audio input device that was removed.
+ */
+- boost::signal2<void, AudioInputDevice, bool> device_removed;
++ boost::signals2::signal<void(AudioInputDevice, bool)> device_removed;
+
+ private:
+ void on_set_device (const AudioInputDevice & device);
+--- ekiga-4.0.1/lib/engine/audioinput/audioinput-manager.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/audioinput/audioinput-manager.h.boost-signals2 2019-05-16 20:40:06.093377163 +0200
+@@ -39,7 +39,7 @@
+ #define __AUDIOINPUT_MANAGER_H__
+
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "audioinput-info.h"
+@@ -148,18 +148,18 @@
+ * @param device the audio input device that was opened.
+ * @param config the current audio input device configuration (current volume, etc.).
+ */
+- boost::signal2<void, AudioInputDevice, AudioInputSettings> device_opened;
++ boost::signals2::signal<void(AudioInputDevice, AudioInputSettings)> device_opened;
+
+ /** This signal is emitted when an audio input device is closed.
+ * @param device the audio input device that was closed.
+ */
+- boost::signal1<void, AudioInputDevice> device_closed;
++ boost::signals2::signal<void(AudioInputDevice)> device_closed;
+
+ /** This signal is emitted when an error occurs when opening a audio input device.
+ * @param device the audio input device that caused the error.
+ * @param error_code the audio input device error code.
+ */
+- boost::signal2<void, AudioInputDevice, AudioInputErrorCodes> device_error;
++ boost::signals2::signal<void(AudioInputDevice, AudioInputErrorCodes)> device_error;
+
+
+ protected:
+--- ekiga-4.0.1/lib/engine/audiooutput/audiooutput-core.h 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/audiooutput/audiooutput-core.h.boost-signals2 2019-05-16 20:40:58.822496863 +0200
+@@ -128,7 +128,7 @@
+ /** This signal is emitted when a Ekiga::AudioOutputManager has been
+ * added to the AudioOutputCore Service.
+ */
+- boost::signal1<void, AudioOutputManager &> manager_added;
++ boost::signals2::signal<void(AudioOutputManager &)> manager_added;
+
+
+ /** Get a list of all devices supported by all managers registered to the core.
+@@ -299,23 +299,23 @@
+
+ /** See audiooutput-manager.h for the API
+ */
+- boost::signal4<void, AudioOutputManager &, AudioOutputPS, AudioOutputDevice&, AudioOutputSettings&> device_opened;
+- boost::signal3<void, AudioOutputManager &, AudioOutputPS, AudioOutputDevice&> device_closed;
+- boost::signal4<void, AudioOutputManager &, AudioOutputPS, AudioOutputDevice&, AudioOutputErrorCodes> device_error;
++ boost::signals2::signal<void(AudioOutputManager &, AudioOutputPS, AudioOutputDevice&, AudioOutputSettings&)> device_opened;
++ boost::signals2::signal<void(AudioOutputManager &, AudioOutputPS, AudioOutputDevice&)> device_closed;
++ boost::signals2::signal<void(AudioOutputManager &, AudioOutputPS, AudioOutputDevice&, AudioOutputErrorCodes)> device_error;
+
+ /** This signal is emitted when an audio output device has been added to the system.
+ * This signal will be emitted if add_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the audio output device that was added.
+ */
+- boost::signal2<void, AudioOutputDevice, bool> device_added;
++ boost::signals2::signal<void(AudioOutputDevice, bool)> device_added;
+
+ /** This signal is emitted when an audio output device has been removed from the system.
+ * This signal will be emitted if remove_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the audio output device that was removed.
+ */
+- boost::signal2<void, AudioOutputDevice, bool> device_removed;
++ boost::signals2::signal<void(AudioOutputDevice, bool)> device_removed;
+
+ private:
+ void on_set_device (const AudioOutputDevice & device);
+--- ekiga-4.0.1/lib/engine/audiooutput/audiooutput-manager.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/audiooutput/audiooutput-manager.h.boost-signals2 2019-05-16 20:41:41.638594580 +0200
+@@ -39,7 +39,7 @@
+ #define __AUDIOOUTPUT_MANAGER_H__
+
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "audiooutput-info.h"
+@@ -152,20 +152,20 @@
+ * @param device the audio output device that was opened.
+ * @param config the current audio output device configuration (current volume, etc.).
+ */
+- boost::signal3<void, AudioOutputPS, AudioOutputDevice, AudioOutputSettings> device_opened;
++ boost::signals2::signal<void(AudioOutputPS, AudioOutputDevice, AudioOutputSettings)> device_opened;
+
+ /** This signal is emitted when an audio output device is closed.
+ * @param prim whether the primary or secondary audio output device was closed.
+ * @param device the audio output device that was closed.
+ */
+- boost::signal2<void, AudioOutputPS, AudioOutputDevice> device_closed;
++ boost::signals2::signal<void(AudioOutputPS, AudioOutputDevice)> device_closed;
+
+ /** This signal is emitted when an error occurs when opening an audio output device.
+ * @param prim whether the primary or secondary audio output device caused the error.
+ * @param device the audio output device that caused the error.
+ * @param error_code the audio output device error code.
+ */
+- boost::signal3<void, AudioOutputPS, AudioOutputDevice, AudioOutputErrorCodes> device_error;
++ boost::signals2::signal<void(AudioOutputPS, AudioOutputDevice, AudioOutputErrorCodes)> device_error;
+
+ protected:
+ typedef struct ManagerState {
+--- ekiga-4.0.1/lib/engine/chat/chat-core.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/chat/chat-core.h.boost-signals2 2019-05-16 20:42:03.614644914 +0200
+@@ -100,7 +100,7 @@
+ /** This signal is emitted when an Ekiga::Dialect has been added to
+ * the ChatCore service.
+ */
+- boost::signal1<void, DialectPtr > dialect_added;
++ boost::signals2::signal<void(DialectPtr)> dialect_added;
+
+ private:
+
+@@ -116,7 +116,7 @@
+
+ /** This signal is emitted when the ChatCore service has been updated.
+ */
+- boost::signal0<void> updated;
++ boost::signals2::signal<void(void)> updated;
+
+ /** This chain allows the ChatCore to present forms to the user
+ */
+--- ekiga-4.0.1/lib/engine/chat/chat.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/chat/chat.h.boost-signals2 2019-05-16 20:42:45.038740118 +0200
+@@ -37,7 +37,7 @@
+ #define __CHAT_H__
+
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include <boost/smart_ptr.hpp>
+@@ -113,15 +113,15 @@
+
+ /** This signal is emitted when the Chat has been updated.
+ */
+- boost::signal0<void> updated;
++ boost::signals2::signal<void(void)> updated;
+
+ /** This signal is emitted when the user requested to see this Chat
+ */
+- boost::signal0<void> user_requested;
++ boost::signals2::signal<void(void)> user_requested;
+
+ /** This signal is emitted when the Chat has been removed.
+ */
+- boost::signal0<void> removed;
++ boost::signals2::signal<void(void)> removed;
+
+ /** Feed possible actions on this Chat to the given MenuBuilder
+ * @param A MenuBuilder object to populate.
+--- ekiga-4.0.1/lib/engine/chat/dialect.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/chat/dialect.h.boost-signals2 2019-05-16 20:43:23.359828571 +0200
+@@ -72,12 +72,12 @@
+ /** This signal is emitted when an Ekiga::SimpleChat has been added to
+ * the dialect.
+ */
+- boost::signal1<void, SimpleChatPtr> simple_chat_added;
++ boost::signals2::signal<void(SimpleChatPtr)> simple_chat_added;
+
+ /** This signal is emitted when an Ekiga::MultipleChat has been added to
+ * the dialect.
+ */
+- boost::signal1<void, MultipleChatPtr> multiple_chat_added;
++ boost::signals2::signal<void(MultipleChatPtr)> multiple_chat_added;
+
+ /** This chain allows the Dialect to present forms to the user.
+ */
+--- ekiga-4.0.1/lib/engine/chat/dialect-impl.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/chat/dialect-impl.h.boost-signals2 2019-05-16 21:27:11.112358866 +0200
+@@ -47,7 +47,7 @@
+ typename MultipleChatType = MultipleChat>
+ class DialectImpl:
+ public Dialect,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+@@ -75,10 +75,10 @@
+
+ /* More STL-like ways to access the chats within this Ekiga::DialectImpl
+ */
+- typedef typename Ekiga::map_key_iterator<std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals::connection> > > simple_iterator;
+- typedef typename Ekiga::map_key_const_iterator<std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals::connection> > > simple_const_iterator;
+- typedef typename Ekiga::map_key_iterator<std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals::connection> > > multiple_iterator;
+- typedef typename Ekiga::map_key_const_iterator<std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals::connection> > > multiple_const_iterator;
++ typedef typename Ekiga::map_key_iterator<std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals2::connection> > > simple_iterator;
++ typedef typename Ekiga::map_key_const_iterator<std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals2::connection> > > simple_const_iterator;
++ typedef typename Ekiga::map_key_iterator<std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals2::connection> > > multiple_iterator;
++ typedef typename Ekiga::map_key_const_iterator<std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals2::connection> > > multiple_const_iterator;
+
+ simple_iterator simple_begin ();
+ simple_iterator simple_end ();
+@@ -116,8 +116,8 @@
+
+ private:
+
+- std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals::connection> > simple_chats;
+- std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals::connection> > multiple_chats;
++ std::map<boost::shared_ptr<SimpleChatType>, std::list<boost::signals2::connection> > simple_chats;
++ std::map<boost::shared_ptr<MultipleChatType>, std::list<boost::signals2::connection> > multiple_chats;
+
+ void on_simple_chat_removed (boost::shared_ptr<SimpleChatType> chat);
+
+@@ -133,22 +133,22 @@
+ template<typename SimpleChatType, typename MultipleChatType>
+ Ekiga::DialectImpl<SimpleChatType, MultipleChatType>::~DialectImpl ()
+ {
+- for (typename std::map<boost::shared_ptr<SimpleChatType>,std::list<boost::signals::connection> >::iterator iter = simple_chats.begin ();
++ for (typename std::map<boost::shared_ptr<SimpleChatType>,std::list<boost::signals2::connection> >::iterator iter = simple_chats.begin ();
+ iter != simple_chats.end ();
+ iter++) {
+
+- for (std::list<boost::signals::connection>::iterator conn_iter = iter->second.begin ();
++ for (std::list<boost::signals2::connection>::iterator conn_iter = iter->second.begin ();
+ conn_iter != iter->second.end ();
+ ++conn_iter) {
+
+ conn_iter->disconnect ();
+ }
+ }
+- for (typename std::map<boost::shared_ptr<MultipleChatType>,std::list<boost::signals::connection> >::iterator iter = multiple_chats.begin ();
++ for (typename std::map<boost::shared_ptr<MultipleChatType>,std::list<boost::signals2::connection> >::iterator iter = multiple_chats.begin ();
+ iter != multiple_chats.end ();
+ iter++) {
+
+- for (std::list<boost::signals::connection>::iterator conn_iter = iter->second.begin ();
++ for (std::list<boost::signals2::connection>::iterator conn_iter = iter->second.begin ();
+ conn_iter != iter->second.end ();
+ ++conn_iter) {
+
+@@ -163,7 +163,7 @@
+ {
+ bool go_on = true;
+
+- for (typename std::map<boost::shared_ptr<SimpleChatType>,std::list<boost::signals::connection> >::const_iterator iter = simple_chats.begin ();
++ for (typename std::map<boost::shared_ptr<SimpleChatType>,std::list<boost::signals2::connection> >::const_iterator iter = simple_chats.begin ();
+ go_on && iter != simple_chats.end ();
+ iter++) {
+
+@@ -177,7 +177,7 @@
+ {
+ bool go_on = true;
+
+- for (typename std::map<boost::shared_ptr<MultipleChatType>,std::list<boost::signals::connection> >::const_iterator iter = multiple_chats.begin ();
++ for (typename std::map<boost::shared_ptr<MultipleChatType>,std::list<boost::signals2::connection> >::const_iterator iter = multiple_chats.begin ();
+ go_on && iter != multiple_chats.end ();
+ iter++) {
+
+@@ -275,7 +275,7 @@
+ void
+ Ekiga::DialectImpl<SimpleChatType, MultipleChatType>::on_simple_chat_removed (boost::shared_ptr<SimpleChatType> chat)
+ {
+- for (typename std::list<boost::signals::connection>::iterator iter = simple_chats[chat].begin ();
++ for (typename std::list<boost::signals2::connection>::iterator iter = simple_chats[chat].begin ();
+ iter != simple_chats[chat].end ();
+ ++iter) {
+
+@@ -288,7 +288,7 @@
+ void
+ Ekiga::DialectImpl<SimpleChatType, MultipleChatType>::on_multiple_chat_removed (boost::shared_ptr<MultipleChatType> chat)
+ {
+- for (typename std::list<boost::signals::connection>::iterator iter = multiple_chats[chat].begin ();
++ for (typename std::list<boost::signals2::connection>::iterator iter = multiple_chats[chat].begin ();
+ iter != multiple_chats[chat].end ();
+ ++iter) {
+
+--- ekiga-4.0.1/lib/engine/components/call-history/history-book.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/call-history/history-book.h.boost-signals2 2019-05-16 20:43:58.286909503 +0200
+@@ -53,7 +53,7 @@
+
+ class Book:
+ public Ekiga::Book,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+@@ -86,7 +86,7 @@
+
+ void clear ();
+
+- boost::signal0<void> cleared;
++ boost::signals2::signal<void(void)> cleared;
+
+ private:
+
+--- ekiga-4.0.1/lib/engine/components/call-history/history-contact.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/call-history/history-contact.h.boost-signals2 2019-05-16 20:44:24.678970855 +0200
+@@ -61,7 +61,7 @@
+
+ class Contact:
+ public Ekiga::Contact,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/lib/engine/components/local-roster/local-cluster.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/local-roster/local-cluster.h.boost-signals2 2019-05-16 20:45:18.111095580 +0200
+@@ -51,7 +51,7 @@
+ class Cluster :
+ public Ekiga::ClusterImpl<Heap>,
+ public Ekiga::Trigger,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/lib/engine/components/local-roster/local-presentity.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/local-roster/local-presentity.h.boost-signals2 2019-05-16 20:45:33.511131655 +0200
+@@ -162,7 +162,7 @@
+ * This signal makes the Local::Heap know that the XML tree changed
+ * and hence should be saved
+ */
+- boost::signal0<void> trigger_saving;
++ boost::signals2::signal<void(void)> trigger_saving;
+
+
+ private:
+--- ekiga-4.0.1/lib/engine/components/opal/opal-account.h 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/opal/opal-account.h.boost-signals2 2019-05-16 20:45:50.751172106 +0200
+@@ -153,7 +153,7 @@
+
+ const std::string as_string () const;
+
+- boost::signal0<void> trigger_saving;
++ boost::signals2::signal<void(void)> trigger_saving;
+
+ /*
+ * This is because an opal account is an Ekiga::PresencePublisher
+--- ekiga-4.0.1/lib/engine/components/opal/opal-call.h 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/opal/opal-call.h.boost-signals2 2019-05-16 20:46:08.255213249 +0200
+@@ -55,7 +55,7 @@
+ class Call
+ : public OpalCall,
+ public Ekiga::Call,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+
+ public:
+--- ekiga-4.0.1/lib/engine/components/opal/opal-gmconf-bridge.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/components/opal/opal-gmconf-bridge.cpp.boost-signals2 2019-05-16 20:46:26.119255313 +0200
+@@ -35,7 +35,7 @@
+ */
+
+ #include <iostream>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "config.h"
+--- ekiga-4.0.1/lib/engine/framework/chain-of-responsibility.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/chain-of-responsibility.h.boost-signals2 2019-05-16 21:15:28.782572221 +0200
+@@ -36,7 +36,7 @@
+ #ifndef __CHAIN_OF_RESPONSIBILITY_H__
+ #define __CHAIN_OF_RESPONSIBILITY_H__
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ /* This code uses boost signals to implement the "chain of responsibility"
+@@ -117,9 +117,8 @@
+
+ template<typename T_request>
+ struct ChainOfResponsibility:
+- public boost::signal1<bool,
+- T_request,
+- responsibility_accumulator>
++ public boost::signals2::signal<bool(T_request),
++ responsibility_accumulator>
+ {
+ };
+ };
+--- ekiga-4.0.1/lib/engine/framework/form-request-simple.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/form-request-simple.h.boost-signals2 2019-05-16 20:48:12.632507659 +0200
+@@ -36,7 +36,7 @@
+ #ifndef __FORM_REQUEST_SIMPLE_H__
+ #define __FORM_REQUEST_SIMPLE_H__
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "form-builder.h"
+--- ekiga-4.0.1/lib/engine/framework/gmconf-bridge.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/gmconf-bridge.h.boost-signals2 2019-05-16 20:48:33.432557242 +0200
+@@ -38,7 +38,7 @@
+ #define __GMCONF_BRIDGE_H__
+
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "gmconf.h"
+@@ -94,7 +94,7 @@
+ * @param key is the GmConf key whose value changed
+ * @param entry is the new GmConf entry
+ */
+- boost::signal2<void, std::string /*key*/, GmConfEntry * /*entry*/> property_changed;
++ boost::signals2::signal<void(std::string /*key*/, GmConfEntry * /*entry*/)> property_changed;
+
+ protected :
+ Ekiga::Service & service;
+--- ekiga-4.0.1/lib/engine/framework/live-object.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/live-object.h.boost-signals2 2019-05-16 20:48:53.280604647 +0200
+@@ -62,12 +62,12 @@
+
+ /** This signal is emitted when the object has been updated.
+ */
+- boost::signal0<void> updated;
++ boost::signals2::signal<void(void)> updated;
+
+
+ /** This signal is emitted when the object has been removed.
+ */
+- boost::signal0<void> removed;
++ boost::signals2::signal<void(void)> removed;
+
+ /** This chain allows the object to present forms to the user
+ */
+--- ekiga-4.0.1/lib/engine/framework/menu-builder.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/menu-builder.h.boost-signals2 2019-05-16 20:49:09.399643212 +0200
+@@ -37,7 +37,7 @@
+ #define __MENU_BUILDER_H__
+
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+
+--- ekiga-4.0.1/lib/engine/framework/personal-details.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/personal-details.h.boost-signals2 2019-05-16 20:49:31.152695349 +0200
+@@ -37,7 +37,7 @@
+ #define __PERSONAL_DETAILS_H__
+
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "services.h"
+@@ -66,7 +66,7 @@
+ virtual void set_presence_info (const std::string presence,
+ const std::string status) = 0;
+
+- boost::signal0<void> updated;
++ boost::signals2::signal<void(void)> updated;
+ };
+ };
+
+--- ekiga-4.0.1/lib/engine/framework/reflister.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/reflister.h.boost-signals2 2019-05-16 20:50:53.592893897 +0200
+@@ -37,7 +37,7 @@
+ #ifndef __REFLISTER_H__
+ #define __REFLISTER_H__
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <list>
+
+@@ -55,7 +55,7 @@
+ {
+ protected:
+
+- typedef std::map<boost::shared_ptr<ObjectType>,std::list<boost::signals::connection> > container_type;
++ typedef std::map<boost::shared_ptr<ObjectType>,std::list<boost::signals2::connection> > container_type;
+ typedef Ekiga::map_key_iterator<container_type> iterator;
+ typedef Ekiga::map_key_const_iterator<container_type> const_iterator;
+
+@@ -66,7 +66,7 @@
+ void add_object (boost::shared_ptr<ObjectType> obj);
+
+ void add_connection (boost::shared_ptr<ObjectType> obj,
+- boost::signals::connection connection);
++ boost::signals2::connection connection);
+
+ void remove_object (boost::shared_ptr<ObjectType> obj);
+
+@@ -78,9 +78,9 @@
+ const_iterator begin () const;
+ const_iterator end () const;
+
+- boost::signal1<void, boost::shared_ptr<ObjectType> > object_added;
+- boost::signal1<void, boost::shared_ptr<ObjectType> > object_removed;
+- boost::signal1<void, boost::shared_ptr<ObjectType> > object_updated;
++ boost::signals2::signal<void(boost::shared_ptr<ObjectType>)> object_added;
++ boost::signals2::signal<void(boost::shared_ptr<ObjectType>)> object_removed;
++ boost::signals2::signal<void(boost::shared_ptr<ObjectType>)> object_updated;
+
+ private:
+ container_type objects;
+@@ -95,7 +95,7 @@
+ iter != objects.end ();
+ ++iter) {
+
+- for (std::list<boost::signals::connection>::iterator conn_iter = iter->second.begin ();
++ for (std::list<boost::signals2::connection>::iterator conn_iter = iter->second.begin ();
+ conn_iter != iter->second.end ();
+ ++conn_iter) {
+
+@@ -130,7 +130,7 @@
+ template<typename ObjectType>
+ void
+ Ekiga::RefLister<ObjectType>::add_connection (boost::shared_ptr<ObjectType> obj,
+- boost::signals::connection connection)
++ boost::signals2::connection connection)
+ {
+ objects[obj].push_back (connection);
+ }
+@@ -139,8 +139,8 @@
+ void
+ Ekiga::RefLister<ObjectType>::remove_object (boost::shared_ptr<ObjectType> obj)
+ {
+- std::list<boost::signals::connection> connections = objects[obj];
+- for (std::list<boost::signals::connection>::iterator iter = connections.begin ();
++ std::list<boost::signals2::connection> connections = objects[obj];
++ for (std::list<boost::signals2::connection>::iterator iter = connections.begin ();
+ iter != connections.end ();
+ ++iter)
+ iter->disconnect ();
+--- ekiga-4.0.1/lib/engine/framework/runtime.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/runtime.h.boost-signals2 2019-05-16 21:15:48.437621428 +0200
+@@ -34,7 +34,7 @@
+ *
+ */
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #ifndef __RUNTIME_H__
+--- ekiga-4.0.1/lib/engine/framework/services.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/framework/services.h.boost-signals2 2019-05-16 20:51:40.904008518 +0200
+@@ -45,7 +45,7 @@
+
+ #include <list>
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ namespace Ekiga
+@@ -101,7 +101,7 @@
+
+ void dump (std::ostream &stream) const;
+
+- boost::signal1<void, ServicePtr> service_added;
++ boost::signals2::signal<void(ServicePtr)> service_added;
+
+ private:
+
+--- ekiga-4.0.1/lib/engine/gui/gtk-core/codecsbox.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-core/codecsbox.cpp.boost-signals2 2019-05-16 20:52:02.689061460 +0200
+@@ -38,6 +38,8 @@
+ #include "config.h"
+ #include "codecsbox.h"
+
++#include <sstream>
++
+ #include "gmconf.h"
+ #include "codec-description.h"
+
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/accounts-window.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/accounts-window.cpp.boost-signals2 2019-05-16 20:52:22.872110600 +0200
+@@ -62,7 +62,7 @@
+ GtkAccelGroup *accel;
+
+ Ekiga::ServiceCore &core;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+
+ std::string presence;
+
+@@ -502,7 +502,7 @@
+ {
+ AccountsWindow *self = ACCOUNTS_WINDOW (obj);
+
+- for (std::vector<boost::signals::connection>::iterator iter
++ for (std::vector<boost::signals2::connection>::iterator iter
+ = self->priv->connections.begin ();
+ iter != self->priv->connections.end ();
+ iter++)
+@@ -535,7 +535,7 @@
+ {
+ AccountsWindow *self = NULL;
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ GtkWidget *vbox = NULL;
+ GtkWidget *menu_bar = NULL;
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/addressbook-window.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/addressbook-window.cpp.boost-signals2 2019-05-16 20:52:40.184152821 +0200
+@@ -52,7 +52,7 @@
+ _AddressBookWindowPrivate (Ekiga::ContactCore & _core):core (_core) { }
+
+ Ekiga::ContactCore & core;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ GtkWidget *tree_view;
+ GtkWidget *notebook;
+ GtkTreeSelection *selection;
+@@ -579,7 +579,7 @@
+ {
+ AddressBookWindow *self = ADDRESSBOOK_WINDOW (obj);
+
+- for (std::vector<boost::signals::connection>::iterator iter
++ for (std::vector<boost::signals2::connection>::iterator iter
+ = self->priv->connections.begin ();
+ iter != self->priv->connections.end ();
+ iter++)
+@@ -613,7 +613,7 @@
+ {
+ AddressBookWindow *self = NULL;
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ GtkWidget *menu_bar = NULL;
+ GtkWidget *frame = NULL;
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/book-view-gtk.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/book-view-gtk.cpp.boost-signals2 2019-05-16 21:25:50.824151811 +0200
+@@ -62,7 +62,7 @@
+ GtkWidget *scrolled_window;
+
+ Ekiga::BookPtr book;
+- std::list<boost::signals::connection> connections;
++ std::list<boost::signals2::connection> connections;
+ };
+
+
+@@ -447,7 +447,7 @@
+
+ view = BOOK_VIEW_GTK (obj);
+
+- for (std::list<boost::signals::connection>::iterator iter
++ for (std::list<boost::signals2::connection>::iterator iter
+ = view->priv->connections.begin ();
+ iter != view->priv->connections.end ();
+ ++iter)
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp.boost-signals2 2019-05-16 20:53:08.385221735 +0200
+@@ -56,7 +56,7 @@
+ boost::shared_ptr<History::Book> book;
+ GtkListStore* store;
+ GtkTreeView* tree;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ };
+
+ /* this is what we put in the view */
+@@ -229,7 +229,7 @@
+
+ view = CALL_HISTORY_VIEW_GTK (obj);
+
+- for (std::vector<boost::signals::connection>::iterator iter
++ for (std::vector<boost::signals2::connection>::iterator iter
+ = view->priv->connections.begin ();
+ iter != view->priv->connections.end ();
+ iter++)
+@@ -314,7 +314,7 @@
+ GtkCellRenderer *renderer = NULL;
+ GtkTreeSelection *selection = NULL;
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ g_return_val_if_fail (book, (GtkWidget*)NULL);
+
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/call-window.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/call-window.cpp.boost-signals2 2019-05-16 20:53:23.457258635 +0200
+@@ -181,7 +181,7 @@
+
+ GtkWidget *transfer_call_popup;
+
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ };
+
+ /* properties */
+@@ -2207,7 +2207,7 @@
+ static void
+ ekiga_call_window_connect_engine_signals (EkigaCallWindow *cw)
+ {
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ g_return_if_fail (EKIGA_IS_CALL_WINDOW (cw));
+
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/chat-area.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/chat-area.cpp.boost-signals2 2019-05-16 20:53:39.069296908 +0200
+@@ -58,7 +58,7 @@
+ struct _ChatAreaPrivate
+ {
+ Ekiga::Chat* chat;
+- boost::signals::connection connection;
++ boost::signals2::connection connection;
+ boost::shared_ptr<ChatAreaHelper> helper;
+ GmTextBufferEnhancer* enhancer;
+ GtkWidget* smiley_menu;
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/chat-window.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/chat-window.cpp.boost-signals2 2019-05-16 21:25:41.264127202 +0200
+@@ -54,7 +54,7 @@
+ {}
+
+ Ekiga::ServiceCore& core;
+- std::list<boost::signals::connection> connections;
++ std::list<boost::signals2::connection> connections;
+
+ GtkWidget* notebook;
+ };
+@@ -405,7 +405,7 @@
+
+ self = CHAT_WINDOW (obj);
+
+- for (std::list<boost::signals::connection>::iterator iter
++ for (std::list<boost::signals2::connection>::iterator iter
+ = self->priv->connections.begin ();
+ iter != self->priv->connections.end ();
+ ++iter)
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/heap-view.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/heap-view.cpp.boost-signals2 2019-05-16 20:53:55.041336117 +0200
+@@ -47,7 +47,7 @@
+ struct _HeapViewPrivate
+ {
+ Ekiga::HeapPtr heap;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+
+ GtkTreeStore* store;
+ GtkTreeView* view;
+@@ -454,7 +454,7 @@
+ {
+ if (self->priv->heap) {
+
+- for (std::vector<boost::signals::connection>::iterator iter
++ for (std::vector<boost::signals2::connection>::iterator iter
+ = self->priv->connections.begin ();
+ iter != self->priv->connections.end ();
+ iter++)
+@@ -465,7 +465,7 @@
+
+ if (heap) {
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ conn = heap->removed.connect (boost::bind (&on_heap_removed, self));
+ self->priv->connections.push_back (conn);
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/preferences-window.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/preferences-window.cpp.boost-signals2 2019-05-16 20:54:24.433408410 +0200
+@@ -88,7 +88,7 @@
+ GtkWidget *iface;
+ GtkWidget *fsbutton;
+ Ekiga::ServiceCore *core;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ } GmPreferencesWindow;
+
+ #define GM_PREFERENCES_WINDOW(x) (GmPreferencesWindow *) (x)
+@@ -1357,7 +1357,7 @@
+
+ gm_window_hide_on_delete (window);
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+ boost::shared_ptr<Ekiga::VideoInputCore> videoinput_core = core.get<Ekiga::VideoInputCore> ("videoinput-core");
+ boost::shared_ptr<Ekiga::AudioInputCore> audioinput_core = core.get<Ekiga::AudioInputCore> ("audioinput-core");
+ boost::shared_ptr<Ekiga::AudioOutputCore> audiooutput_core = core.get<Ekiga::AudioOutputCore> ("audiooutput-core");
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/presentity-view.cpp 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/presentity-view.cpp.boost-signals2 2019-05-16 20:54:36.777438826 +0200
+@@ -40,8 +40,8 @@
+ struct _PresentityViewPrivate
+ {
+ Ekiga::Presentity* presentity;
+- boost::signals::connection updated_conn;
+- boost::signals::connection removed_conn;
++ boost::signals2::connection updated_conn;
++ boost::signals2::connection removed_conn;
+
+ /* we contain those, so no need to unref them */
+ GtkWidget* presence_image;
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp.boost-signals2 2019-05-16 20:54:50.449472550 +0200
+@@ -60,7 +60,7 @@
+ {
+ boost::shared_ptr<Ekiga::PresenceCore> core;
+
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ GtkTreeStore *store;
+ GtkTreeView *tree_view;
+ GSList *folded_groups;
+@@ -1382,7 +1382,7 @@
+ {
+ if (self->priv->core) {
+
+- for (std::vector<boost::signals::connection>::iterator iter
++ for (std::vector<boost::signals2::connection>::iterator iter
+ = self->priv->connections.begin ();
+ iter != self->priv->connections.end ();
+ iter++)
+@@ -1393,7 +1393,7 @@
+
+ if (core) {
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ conn = core->cluster_added.connect (boost::bind (&on_cluster_added, self, _1));
+ self->priv->connections.push_back (conn);
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/statusicon.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/statusicon.cpp.boost-signals2 2019-05-16 20:55:08.249516515 +0200
+@@ -68,7 +68,7 @@
+ GtkWidget *popup_menu;
+ gboolean has_message;
+
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+
+ int blink_id;
+ std::string status;
+@@ -174,7 +174,7 @@
+ if (self->priv->blink_image)
+ g_free (self->priv->blink_image);
+
+- for (std::vector<boost::signals::connection>::iterator iter = self->priv->connections.begin () ;
++ for (std::vector<boost::signals2::connection>::iterator iter = self->priv->connections.begin () ;
+ iter != self->priv->connections.end ();
+ iter++)
+ iter->disconnect ();
+@@ -548,7 +548,7 @@
+ if (!statusicon_should_run ())
+ return self;
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ self = STATUSICON (g_object_new (STATUSICON_TYPE, NULL));
+ self->priv = new StatusIconPrivate (core);
+--- ekiga-4.0.1/lib/engine/gui/gtk-frontend/statusicon.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/gui/gtk-frontend/statusicon.h.boost-signals2 2019-05-16 20:55:28.249565992 +0200
+@@ -42,7 +42,7 @@
+
+ #include <gtk/gtk.h>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ G_BEGIN_DECLS
+--- ekiga-4.0.1/lib/engine/hal/hal-core.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/hal/hal-core.h.boost-signals2 2019-05-16 20:56:59.929793841 +0200
+@@ -40,7 +40,7 @@
+
+ #include "services.h"
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include <set>
+@@ -114,24 +114,24 @@
+ /** This signal is emitted when an Ekiga::HalManager has been
+ * added to the HalCore Service.
+ */
+- boost::signal1<void, HalManager &> manager_added;
++ boost::signals2::signal<void(HalManager &)> manager_added;
+
+
+ /*** API to act on HAL events ***/
+
+ /** See hal-manager.h for the API
+ */
+- boost::signal4<void, const std::string &, const std::string &, unsigned, HalManager*> videoinput_device_added;
+- boost::signal4<void, const std::string &, const std::string &, unsigned, HalManager*> videoinput_device_removed;
++ boost::signals2::signal<void(const std::string &, const std::string &, unsigned, HalManager*)> videoinput_device_added;
++ boost::signals2::signal<void(const std::string &, const std::string &, unsigned, HalManager*)> videoinput_device_removed;
+
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> audioinput_device_added;
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> audioinput_device_removed;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> audioinput_device_added;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> audioinput_device_removed;
+
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> audiooutput_device_added;
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> audiooutput_device_removed;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> audiooutput_device_added;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> audiooutput_device_removed;
+
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> network_interface_up;
+- boost::signal3<void, const std::string &, const std::string &, HalManager*> network_interface_down;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> network_interface_up;
++ boost::signals2::signal<void(const std::string &, const std::string &, HalManager*)> network_interface_down;
+
+ private:
+
+--- ekiga-4.0.1/lib/engine/hal/hal-manager.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/hal/hal-manager.h.boost-signals2 2019-05-16 20:58:32.322025169 +0200
+@@ -75,50 +75,50 @@
+ * @param device the device name.
+ * @param capabilities source-dependent device capabilites (e.g. V4L1 or V4L2 for video4linux).
+ */
+- boost::signal3<void, std::string, std::string, unsigned> videoinput_device_added;
++ boost::signals2::signal<void(std::string, std::string, unsigned)> videoinput_device_added;
+
+ /** This signal is emitted when a video input device is removed from the system.
+ * @param source the video input framework (e.g. video4linux, etc.).
+ * @param device the device name.
+ * @param capabilities source-dependent device capabilites (e.g. V4L1 or V4L2 for video4linux).
+ */
+- boost::signal3<void, std::string, std::string, unsigned> videoinput_device_removed;
++ boost::signals2::signal<void(std::string, std::string, unsigned)> videoinput_device_removed;
+
+ /** This signal is emitted when an audio input device is added to the system.
+ * @param source the audio input framework (e.g. alsa, oss, etc.).
+ * @param device the device name.
+ */
+- boost::signal2<void, std::string, std::string> audioinput_device_added;
++ boost::signals2::signal<void(std::string, std::string)> audioinput_device_added;
+
+ /** This signal is emitted when an audio input device is removed from the system.
+ * @param source the audio input framework (e.g. alsa, oss, etc.).
+ * @param device the device name.
+ */
+- boost::signal2<void, std::string, std::string> audioinput_device_removed;
++ boost::signals2::signal<void(std::string, std::string)> audioinput_device_removed;
+
+ /** This signal is emitted when an audio output device is added to the system.
+ * @param source the audio output framework (e.g. alsa, oss, etc.).
+ * @param device the device name.
+ */
+- boost::signal2<void, std::string, std::string> audiooutput_device_added;
++ boost::signals2::signal<void(std::string, std::string)> audiooutput_device_added;
+
+ /** This signal is emitted when an audio output device is removed from the system.
+ * @param source the audio output framework (e.g. alsa, oss, etc.).
+ * @param device the device name.
+ */
+- boost::signal2<void, std::string, std::string> audiooutput_device_removed;
++ boost::signals2::signal<void(std::string, std::string)> audiooutput_device_removed;
+
+ /** This signal is emitted when a network device comes up.
+ * @param interface_name the interface name (e.g. eth0, etc.).
+ * @param ip4_address the IPv4 address (e.g. "192.168.0.1").
+ */
+- boost::signal2<void, std::string, std::string> network_interface_up;
++ boost::signals2::signal<void(std::string, std::string)> network_interface_up;
+
+ /** This signal is emitted when a network device goes down.
+ * @param interface_name the interface name (e.g. eth0, etc.).
+ * @param ip4_address the IPv4 address (e.g. "192.168.0.1").
+ */
+- boost::signal2<void, std::string, std::string> network_interface_down;
++ boost::signals2::signal<void(std::string, std::string)> network_interface_down;
+ };
+
+ /**
+--- ekiga-4.0.1/lib/engine/notification/notification-core.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/notification/notification-core.h.boost-signals2 2019-05-16 20:58:55.762084125 +0200
+@@ -77,7 +77,7 @@
+ void action_trigger ()
+ { if (action_callback) action_callback (); }
+
+- boost::signal0<void> removed;
++ boost::signals2::signal<void(void)> removed;
+
+ private:
+
+@@ -109,7 +109,7 @@
+ void push_notification (boost::shared_ptr<Notification> notification)
+ { notification_added (notification); }
+
+- boost::signal1<void, boost::shared_ptr<Notification> > notification_added;
++ boost::signals2::signal<void(boost::shared_ptr<Notification>)> notification_added;
+ };
+ };
+
+--- ekiga-4.0.1/lib/engine/presence/cluster.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/presence/cluster.h.boost-signals2 2019-05-16 20:59:44.537207148 +0200
+@@ -66,16 +66,16 @@
+ * from the Cluster.
+ * @param The Heap in question.
+ */
+- boost::signal1<void, HeapPtr > heap_added;
+- boost::signal1<void, HeapPtr > heap_removed;
++ boost::signals2::signal<void(HeapPtr)> heap_added;
++ boost::signals2::signal<void(HeapPtr)> heap_removed;
+
+ /** Those signals are forwarded from the given Heap
+ * @param The Heap in question.
+ */
+- boost::signal1<void, HeapPtr > heap_updated;
+- boost::signal2<void, HeapPtr , PresentityPtr > presentity_added;
+- boost::signal2<void, HeapPtr , PresentityPtr > presentity_updated;
+- boost::signal2<void, HeapPtr , PresentityPtr > presentity_removed;
++ boost::signals2::signal<void(HeapPtr)> heap_updated;
++ boost::signals2::signal<void(HeapPtr , PresentityPtr )> presentity_added;
++ boost::signals2::signal<void(HeapPtr , PresentityPtr )> presentity_updated;
++ boost::signals2::signal<void(HeapPtr , PresentityPtr )> presentity_removed;
+ };
+
+ typedef boost::shared_ptr<Cluster> ClusterPtr;
+--- ekiga-4.0.1/lib/engine/presence/heap.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/presence/heap.h.boost-signals2 2019-05-16 21:00:10.299272312 +0200
+@@ -83,15 +83,15 @@
+
+ /** This signal is emitted when a Presentity has been added to the Heap.
+ */
+- boost::signal1<void, PresentityPtr > presentity_added;
++ boost::signals2::signal<void(PresentityPtr)> presentity_added;
+
+ /** This signal is emitted when a Presentity has been updated in the Heap.
+ */
+- boost::signal1<void, PresentityPtr > presentity_updated;
++ boost::signals2::signal<void(PresentityPtr)> presentity_updated;
+
+ /** This signal is emitted when a Presentity has been removed from the Heap.
+ */
+- boost::signal1<void, PresentityPtr > presentity_removed;
++ boost::signals2::signal<void(PresentityPtr)> presentity_removed;
+ };
+
+ typedef boost::shared_ptr<Heap> HeapPtr;
+--- ekiga-4.0.1/lib/engine/presence/presence-core.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/presence/presence-core.cpp.boost-signals2 2019-05-16 21:25:58.111170575 +0200
+@@ -49,7 +49,7 @@
+
+ Ekiga::PresenceCore::~PresenceCore ()
+ {
+- for (std::list<boost::signals::connection>::iterator iter = conns.begin (); iter != conns.end (); ++iter)
++ for (std::list<boost::signals2::connection>::iterator iter = conns.begin (); iter != conns.end (); ++iter)
+ iter->disconnect ();
+ }
+
+--- ekiga-4.0.1/lib/engine/presence/presence-core.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/presence/presence-core.h.boost-signals2 2019-05-16 21:26:09.582200124 +0200
+@@ -97,8 +97,8 @@
+ * presence information about an uri it was required to handle.
+ * The information is given as a pair of strings (uri, data).
+ */
+- boost::signal2<void, std::string, std::string> presence_received;
+- boost::signal2<void, std::string, std::string> status_received;
++ boost::signals2::signal<void(std::string, std::string)> presence_received;
++ boost::signals2::signal<void(std::string, std::string)> status_received;
+ };
+
+ class PresencePublisher
+@@ -180,22 +180,22 @@
+ /** This signal is emitted when an Ekiga::Cluster has been added
+ * to the PresenceCore Service.
+ */
+- boost::signal1<void, ClusterPtr > cluster_added;
++ boost::signals2::signal<void(ClusterPtr)> cluster_added;
+
+ /** Those signals are forwarding the heap_added, heap_updated
+ * and heap_removed from the given Cluster.
+ *
+ */
+- boost::signal2<void, ClusterPtr , HeapPtr > heap_added;
+- boost::signal2<void, ClusterPtr , HeapPtr > heap_updated;
+- boost::signal2<void, ClusterPtr , HeapPtr > heap_removed;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr )> heap_added;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr )> heap_updated;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr )> heap_removed;
+
+ /** Those signals are forwarding the presentity_added, presentity_updated
+ * and presentity_removed from the given Heap of the given Cluster.
+ */
+- boost::signal3<void, ClusterPtr , HeapPtr , PresentityPtr > presentity_added;
+- boost::signal3<void, ClusterPtr , HeapPtr , PresentityPtr > presentity_updated;
+- boost::signal3<void, ClusterPtr , HeapPtr , PresentityPtr > presentity_removed;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr , PresentityPtr )> presentity_added;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr , PresentityPtr )> presentity_updated;
++ boost::signals2::signal<void(ClusterPtr , HeapPtr , PresentityPtr )> presentity_removed;
+
+ private:
+
+@@ -256,8 +256,8 @@
+ /** Those signals are emitted whenever information has been received
+ * about an uri ; the information is a pair of strings (uri, information).
+ */
+- boost::signal2<void, std::string, std::string> presence_received;
+- boost::signal2<void, std::string, std::string> status_received;
++ boost::signals2::signal<void(std::string, std::string)> presence_received;
++ boost::signals2::signal<void(std::string, std::string)> status_received;
+
+ private:
+
+@@ -321,7 +321,7 @@
+
+ private:
+
+- std::list<boost::signals::connection> conns;
++ std::list<boost::signals2::connection> conns;
+ };
+
+ /**
+--- ekiga-4.0.1/lib/engine/presence/uri-presentity.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/presence/uri-presentity.h.boost-signals2 2019-05-16 21:01:39.841499790 +0200
+@@ -60,7 +60,7 @@
+ */
+ class URIPresentity:
+ public Ekiga::Presentity,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/lib/engine/protocol/call-core.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/protocol/call-core.cpp.boost-signals2 2019-05-16 21:27:24.447393322 +0200
+@@ -48,7 +48,7 @@
+
+ CallCore::~CallCore ()
+ {
+- for (std::list<boost::signals::connection>::iterator iter = manager_connections.begin ();
++ for (std::list<boost::signals2::connection>::iterator iter = manager_connections.begin ();
+ iter != manager_connections.end ();
+ ++iter)
+ iter->disconnect ();
+@@ -103,7 +103,7 @@
+
+ void CallCore::add_call (boost::shared_ptr<Call> call, boost::shared_ptr<CallManager> manager)
+ {
+- std::list<boost::signals::connection> conns;
++ std::list<boost::signals2::connection> conns;
+
+ conns.push_back (call->ringing.connect (boost::bind (&CallCore::on_ringing_call, this, call, manager)));
+ conns.push_back (call->setup.connect (boost::bind (&CallCore::on_setup_call, this, call, manager)));
+@@ -124,7 +124,7 @@
+
+ void CallCore::remove_call (boost::shared_ptr<Call> call)
+ {
+- for (std::list<boost::signals::connection>::iterator iter2 = call_connections [call->get_id ()].begin ();
++ for (std::list<boost::signals2::connection>::iterator iter2 = call_connections [call->get_id ()].begin ();
+ iter2 != call_connections [call->get_id ()].end ();
+ ++iter2)
+ iter2->disconnect ();
+--- ekiga-4.0.1/lib/engine/protocol/call-core.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/protocol/call-core.h.boost-signals2 2019-05-16 21:04:18.066905414 +0200
+@@ -45,7 +45,7 @@
+ #include "call-protocol-manager.h"
+ #include <boost/smart_ptr.hpp>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <set>
+ #include <map>
+@@ -126,7 +126,7 @@
+ /** This signal is emitted when a Ekiga::CallManager has been
+ * added to the CallCore Service.
+ */
+- boost::signal1<void, boost::shared_ptr<CallManager> > manager_added;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>)> manager_added;
+
+
+ /*** Call Management ***/
+@@ -141,21 +141,21 @@
+
+ /** See call.h for the API
+ */
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > ringing_call;
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > setup_call;
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > missed_call;
+- boost::signal3<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call>, std::string> cleared_call;
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > established_call;
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > held_call;
+- boost::signal2<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call> > retrieved_call;
+- boost::signal5<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call>, std::string, Call::StreamType, bool> stream_opened;
+- boost::signal5<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call>, std::string, Call::StreamType, bool> stream_closed;
+- boost::signal4<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call>, std::string, Call::StreamType> stream_paused;
+- boost::signal4<void, boost::shared_ptr<CallManager> , boost::shared_ptr<Call>, std::string, Call::StreamType> stream_resumed;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> ringing_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> setup_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> missed_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>, std::string)> cleared_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> established_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> held_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>)> retrieved_call;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>, std::string, Call::StreamType, bool)> stream_opened;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>, std::string, Call::StreamType, bool)> stream_closed;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>, std::string, Call::StreamType)> stream_paused;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>, boost::shared_ptr<Call>, std::string, Call::StreamType)> stream_resumed;
+
+ /*** Misc ***/
+- boost::signal1<void, boost::shared_ptr<CallManager> > manager_ready;
+- boost::signal0<void> ready;
++ boost::signals2::signal<void(boost::shared_ptr<CallManager>)> manager_ready;
++ boost::signals2::signal<void(void)> ready;
+
+ /** This chain allows the CallCore to report errors to the user
+ */
+@@ -186,8 +186,8 @@
+
+
+ std::set<boost::shared_ptr<CallManager> > managers;
+- std::list<boost::signals::connection> manager_connections;
+- std::map<std::string, std::list<boost::signals::connection> > call_connections;
++ std::list<boost::signals2::connection> manager_connections;
++ std::map<std::string, std::list<boost::signals2::connection> > call_connections;
+ unsigned nr_ready;
+ };
+
+--- ekiga-4.0.1/lib/engine/protocol/call.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/protocol/call.h.boost-signals2 2019-05-16 21:06:43.219275173 +0200
+@@ -38,7 +38,7 @@
+ #ifndef __CALL_H__
+ #define __CALL_H__
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <string>
+
+@@ -198,69 +198,69 @@
+
+ /* Signal emitted when the call is established
+ */
+- boost::signal0<void> established;
++ boost::signals2::signal<void(void)> established;
+
+ /* Signal emitted when an established call is cleared
+ * @param: a string describing why the call was cleared
+ */
+- boost::signal1<void, std::string> cleared;
++ boost::signals2::signal<void(std::string)> cleared;
+
+ /* Signal emitted when the call is missed, ie cleared
+ * without having been established
+ */
+- boost::signal0<void> missed;
++ boost::signals2::signal<void(void)> missed;
+
+ /* Signal emitted when the call is forwarded
+ */
+- boost::signal0<void> forwarded;
++ boost::signals2::signal<void(void)> forwarded;
+
+ /* Signal emitted when the call is held
+ */
+- boost::signal0<void> held;
++ boost::signals2::signal<void(void)> held;
+
+ /* Signal emitted when the call is retrieved
+ */
+- boost::signal0<void> retrieved;
++ boost::signals2::signal<void(void)> retrieved;
+
+ /* Signal emitted when the call is being setup
+ */
+- boost::signal0<void> setup;
++ boost::signals2::signal<void(void)> setup;
+
+ /* Signal emitted when the remote party is ringing
+ */
+- boost::signal0<void> ringing;
++ boost::signals2::signal<void(void)> ringing;
+
+ /* Signal emitted when a stream is opened
+ * @param the stream name
+ * @param the stream type
+ * @param transmission or reception
+ */
+- boost::signal3<void, std::string, StreamType, bool> stream_opened;
++ boost::signals2::signal<void(std::string, StreamType, bool)> stream_opened;
+
+ /* Signal emitted when a stream is closed
+ * @param the stream name
+ * @param the stream type
+ * @param transmission or reception
+ */
+- boost::signal3<void, std::string, StreamType, bool> stream_closed;
++ boost::signals2::signal<void(std::string, StreamType, bool)> stream_closed;
+
+ /* Signal emitted when a transmitted stream is paused
+ * @param the stream name
+ * @param the stream type
+ * @param transmission or reception
+ */
+- boost::signal2<void, std::string, StreamType> stream_paused;
++ boost::signals2::signal<void(std::string, StreamType)> stream_paused;
+
+ /* Signal emitted when a transmitted stream is resumed
+ * @param the stream name
+ * @param the stream type
+ * @param transmission or reception
+ */
+- boost::signal2<void, std::string, StreamType> stream_resumed;
++ boost::signals2::signal<void(std::string, StreamType)> stream_resumed;
+
+ /** This signal is emitted when the Call is removed.
+ */
+- boost::signal0<void> removed;
++ boost::signals2::signal<void(void)> removed;
+
+ };
+
+--- ekiga-4.0.1/lib/engine/protocol/call-manager.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/protocol/call-manager.h.boost-signals2 2019-05-16 21:04:48.498983953 +0200
+@@ -40,7 +40,7 @@
+ #define __CALL_MANAGER_H__
+
+ #include <set>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include <boost/smart_ptr.hpp>
+@@ -99,7 +99,7 @@
+ /** This signal is emitted when a Ekiga::CallProtocolManager has been
+ * added to the CallManager.
+ */
+- boost::signal1<void, boost::shared_ptr<CallProtocolManager> > manager_added;
++ boost::signals2::signal<void(boost::shared_ptr<CallProtocolManager>)> manager_added;
+
+
+ /*
+@@ -213,7 +213,7 @@
+ /*
+ * MISC
+ */
+- boost::signal0<void> ready;
++ boost::signals2::signal<void(void)> ready;
+
+ private:
+ std::set<boost::shared_ptr<CallProtocolManager> > managers;
+--- ekiga-4.0.1/lib/engine/videoinput/videoinput-core.h 2013-02-19 07:11:02.000000000 +0100
++++ ekiga-4.0.1/lib/engine/videoinput/videoinput-core.h.boost-signals2 2019-05-16 21:07:34.924401112 +0200
+@@ -45,7 +45,7 @@
+ #include "videoinput-manager.h"
+ #include "videoinput-gmconf-bridge.h"
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <glib.h>
+ #include <set>
+@@ -146,7 +146,7 @@
+ /** This signal is emitted when a Ekiga::VideoInputManager has been
+ * added to the VideoInputCore Service.
+ */
+- boost::signal1<void, VideoInputManager &> manager_added;
++ boost::signals2::signal<void(VideoInputManager &)> manager_added;
+
+
+ /*** VideoInput Device Management ***/
+@@ -277,23 +277,23 @@
+
+ /** See videoinput-manager.h for the API
+ */
+- boost::signal3<void, VideoInputManager &, VideoInputDevice &, VideoInputSettings&> device_opened;
+- boost::signal2<void, VideoInputManager &, VideoInputDevice &> device_closed;
+- boost::signal3<void, VideoInputManager &, VideoInputDevice &, VideoInputErrorCodes> device_error;
++ boost::signals2::signal<void(VideoInputManager &, VideoInputDevice &, VideoInputSettings&)> device_opened;
++ boost::signals2::signal<void(VideoInputManager &, VideoInputDevice &)> device_closed;
++ boost::signals2::signal<void(VideoInputManager &, VideoInputDevice &, VideoInputErrorCodes)> device_error;
+
+ /** This signal is emitted when a video input has been added to the system.
+ * This signal will be emitted if add_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the video input device that was added.
+ */
+- boost::signal2<void, VideoInputDevice, bool> device_added;
++ boost::signals2::signal<void(VideoInputDevice, bool)> device_added;
+
+ /** This signal is emitted when a video input has been removed from the system.
+ * This signal will be emitted if remove_device was called with a device name and
+ * a manager claimed support for this device.
+ * @param device the video input device that was removed.
+ */
+- boost::signal2<void, VideoInputDevice, bool> device_removed;
++ boost::signals2::signal<void(VideoInputDevice, bool)> device_removed;
+
+ private:
+ void on_set_device (const VideoInputDevice & device);
+--- ekiga-4.0.1/lib/engine/videoinput/videoinput-manager.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/videoinput/videoinput-manager.h.boost-signals2 2019-05-16 21:08:07.020479478 +0200
+@@ -39,7 +39,7 @@
+ #define __VIDEOINPUT_MANAGER_H__
+
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "videoinput-info.h"
+@@ -159,18 +159,18 @@
+ * @param device the video input device that was opened.
+ * @param config the current video input device configuration (current brightness, colour, etc.).
+ */
+- boost::signal2<void, VideoInputDevice, VideoInputSettings> device_opened;
++ boost::signals2::signal<void(VideoInputDevice, VideoInputSettings)> device_opened;
+
+ /** This signal is emitted when a video input device is closed.
+ * @param device the video input device that was closed.
+ */
+- boost::signal1<void, VideoInputDevice> device_closed;
++ boost::signals2::signal<void(VideoInputDevice)> device_closed;
+
+ /** This signal is emitted when an error occurs when opening a video input device.
+ * @param device the video input device that caused the error.
+ * @param error_code the video input device error code.
+ */
+- boost::signal2<void, VideoInputDevice, VideoInputErrorCodes> device_error;
++ boost::signals2::signal<void(VideoInputDevice, VideoInputErrorCodes)> device_error;
+
+ protected:
+ typedef struct ManagerState {
+--- ekiga-4.0.1/lib/engine/videooutput/videooutput-core.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/lib/engine/videooutput/videooutput-core.h.boost-signals2 2019-05-16 22:08:08.535773653 +0200
+@@ -42,7 +42,7 @@
+ #include "videooutput-gmconf-bridge.h"
+ #include "videooutput-manager.h"
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <set>
+ #include <map>
+@@ -116,7 +116,7 @@
+ /** This signal is emitted when a Ekiga::VideoOutputManager has been
+ * added to the VideoOutputCore Service.
+ */
+- boost::signal1<void, VideoOutputManager &> manager_added;
++ boost::signals2::signal<void(VideoOutputManager &)> manager_added;
+
+
+ /*** Videooutput Management ***/
+@@ -165,11 +165,11 @@
+
+ /** See videooutput-manager.h for the API
+ */
+- boost::signal6<void, VideoOutputManager &, VideoOutputAccel, VideoOutputMode, unsigned, bool, bool> device_opened;
+- boost::signal1<void, VideoOutputManager &> device_closed;
+- boost::signal2<void, VideoOutputManager &, VideoOutputErrorCodes> device_error;
+- boost::signal2<void, VideoOutputManager &, VideoOutputFSToggle> fullscreen_mode_changed;
+- boost::signal3<void, VideoOutputManager &, unsigned, unsigned> size_changed;
++ boost::signals2::signal<void(VideoOutputManager &, VideoOutputAccel, VideoOutputMode, unsigned, bool, bool)> device_opened;
++ boost::signals2::signal<void(VideoOutputManager &)> device_closed;
++ boost::signals2::signal<void(VideoOutputManager &, VideoOutputErrorCodes)> device_error;
++ boost::signals2::signal<void(VideoOutputManager &, VideoOutputFSToggle)> fullscreen_mode_changed;
++ boost::signals2::signal<void(VideoOutputManager &, unsigned, unsigned)> size_changed;
+
+
+ private:
+--- ekiga-4.0.1/lib/engine/videooutput/videooutput-manager.h 2013-02-19 07:11:02.000000000 +0100
++++ ekiga-4.0.1/lib/engine/videooutput/videooutput-manager.h.boost-signals2 2019-05-16 22:07:52.271747906 +0200
+@@ -38,7 +38,7 @@
+ #ifndef __VIDEOOUTPUT_MANAGER_H__
+ #define __VIDEOOUTPUT_MANAGER_H__
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include "videooutput-info.h"
+@@ -108,16 +108,16 @@
+ * @param both_streams if a frame from both local and remote stream has been received.
+ * @param ext_stream if a frame from an extended video stream has been received.
+ */
+- boost::signal5<void, VideoOutputAccel, VideoOutputMode, unsigned, bool, bool> device_opened;
++ boost::signals2::signal<void(VideoOutputAccel, VideoOutputMode, unsigned, bool, bool)> device_opened;
+
+ /** This signal is emitted when a video output device is closed.
+ */
+- boost::signal0<void> device_closed;
++ boost::signals2::signal<void(void)> device_closed;
+
+ /** This signal is emitted when an error occurs when opening a video output device.
+ * @param error_code the video output device error code.
+ */
+- boost::signal1<void, VideoOutputErrorCodes> device_error;
++ boost::signals2::signal<void(VideoOutputErrorCodes)> device_error;
+
+ /** This signal is emitted when a manager switches autonomously into or out of fullscreen mode.
+ * Some managers like DX and XV allow the user to switch between FS
+@@ -127,7 +127,7 @@
+ * or when it is being zoomed in or out.
+ * @param toggle VO_FS_ON or VO_FS_OFF depending on whether FS was activated or deactivated.
+ */
+- boost::signal1<void, VideoOutputFSToggle> fullscreen_mode_changed;
++ boost::signals2::signal<void(VideoOutputFSToggle)> fullscreen_mode_changed;
+
+ /** This signal is emitted the video output size has changed.
+ * This signal is called whenever the size of the widget carrying the video signal
+@@ -136,7 +136,7 @@
+ * @param width the new width of the widget.
+ * @param height the new height of the widget.
+ */
+- boost::signal2<void, unsigned, unsigned> size_changed;
++ boost::signals2::signal<void(unsigned, unsigned)> size_changed;
+
+ protected:
+ virtual void get_display_info (DisplayInfo &) { };
+--- ekiga-4.0.1/plugins/avahi/avahi-cluster.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/avahi/avahi-cluster.h.boost-signals2 2019-05-16 21:10:04.107766569 +0200
+@@ -53,7 +53,7 @@
+ class Cluster:
+ public Ekiga::Service,
+ public Ekiga::ClusterImpl<Heap>,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/plugins/avahi/avahi-heap.h 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/plugins/avahi/avahi-heap.h.boost-signals2 2019-05-16 21:10:12.088786207 +0200
+@@ -60,7 +60,7 @@
+ class Heap:
+ public Ekiga::PresenceFetcher,
+ public Ekiga::HeapImpl<Ekiga::URIPresentity>,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/plugins/ldap/ldap-book.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/ldap/ldap-book.h.boost-signals2 2019-05-16 21:10:28.275826062 +0200
+@@ -124,7 +124,7 @@
+
+ xmlNodePtr get_node ();
+
+- boost::signal0<void> trigger_saving;
++ boost::signals2::signal<void(void)> trigger_saving;
+
+ bool is_ekiga_net_book () const;
+
+--- ekiga-4.0.1/plugins/libnotify/libnotify-main.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/plugins/libnotify/libnotify-main.cpp.boost-signals2 2019-05-16 21:10:54.060889621 +0200
+@@ -51,7 +51,7 @@
+
+ class LibNotify:
+ public Ekiga::Service,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+@@ -77,7 +77,7 @@
+ boost::shared_ptr<Ekiga::Call> call);
+ void on_call_notification_closed (gpointer self);
+
+- typedef std::map<boost::shared_ptr<Ekiga::Notification>, std::pair<boost::signals::connection, boost::shared_ptr<NotifyNotification> > > container_type;
++ typedef std::map<boost::shared_ptr<Ekiga::Notification>, std::pair<boost::signals2::connection, boost::shared_ptr<NotifyNotification> > > container_type;
+ container_type live;
+ };
+
+@@ -234,10 +234,10 @@
+ notify_action_cb, notification.get (), NULL);
+
+ g_signal_connect (notif, "closed", G_CALLBACK (on_notif_closed), notification.get ());
+- boost::signals::connection conn = notification->removed.connect (boost::bind (&LibNotify::on_notification_removed,
++ boost::signals2::connection conn = notification->removed.connect (boost::bind (&LibNotify::on_notification_removed,
+ this, notification));
+
+- live[notification] = std::pair<boost::signals::connection, boost::shared_ptr<NotifyNotification> > (conn, boost::shared_ptr<NotifyNotification> (notif, g_object_unref));
++ live[notification] = std::pair<boost::signals2::connection, boost::shared_ptr<NotifyNotification> > (conn, boost::shared_ptr<NotifyNotification> (notif, g_object_unref));
+
+ notify_notification_show (notif, NULL);
+ }
+--- ekiga-4.0.1/plugins/loudmouth/loudmouth-account.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/loudmouth/loudmouth-account.h.boost-signals2 2019-05-16 21:11:10.299929695 +0200
+@@ -70,7 +70,7 @@
+
+ xmlNodePtr get_node () const;
+
+- boost::signal0<void> trigger_saving;
++ boost::signals2::signal<void(void)> trigger_saving;
+
+ const std::string get_name () const;
+
+--- ekiga-4.0.1/plugins/loudmouth/loudmouth-heap-roster.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/loudmouth/loudmouth-heap-roster.h.boost-signals2 2019-05-16 21:11:24.771965439 +0200
+@@ -46,7 +46,7 @@
+ class HeapRoster:
+ public Ekiga::HeapImpl<Presentity>,
+ public LM::Handler,
+- public boost::signals::trackable
++ public boost::signals2::trackable
+ {
+ public:
+
+--- ekiga-4.0.1/plugins/loudmouth/loudmouth-helpers.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/loudmouth/loudmouth-helpers.h.boost-signals2 2019-05-16 21:11:41.572006967 +0200
+@@ -37,7 +37,7 @@
+ #define __LOUDMOUTH_HELPERS_H__
+
+ #include <boost/smart_ptr.hpp>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ #include <loudmouth/loudmouth.h>
+
+--- ekiga-4.0.1/plugins/loudmouth/loudmouth-presentity.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/loudmouth/loudmouth-presentity.h.boost-signals2 2019-05-16 21:11:53.612036752 +0200
+@@ -78,7 +78,7 @@
+
+ bool has_chat;
+
+- boost::signal0<void> chat_requested;
++ boost::signals2::signal<void(void)> chat_requested;
+
+ private:
+ LmConnection* connection;
+--- ekiga-4.0.1/plugins/resource-list/rl-heap.cpp 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/resource-list/rl-heap.cpp.boost-signals2 2019-05-16 21:12:26.773118885 +0200
+@@ -185,7 +185,7 @@
+ {
+ bool go_on = true;
+
+- for (std::map<PresentityPtr,std::list<boost::signals::connection> >::const_iterator
++ for (std::map<PresentityPtr,std::list<boost::signals2::connection> >::const_iterator
+ iter = presentities.begin ();
+ go_on && iter != presentities.end ();
+ ++iter)
+@@ -254,7 +254,7 @@
+ while ( !presentities.empty ()) {
+
+ presentities.begin()->first->removed ();
+- for (std::list<boost::signals::connection>::const_iterator iter2
++ for (std::list<boost::signals2::connection>::const_iterator iter2
+ = presentities.begin()->second.begin ();
+ iter2 != presentities.begin()->second.end ();
+ ++iter2)
+@@ -366,7 +366,7 @@
+ && xmlStrEqual (BAD_CAST ("entry"), child->name)) {
+
+ PresentityPtr presentity(new Presentity (services, path, doc, child, writable));
+- std::list<boost::signals::connection> conns;
++ std::list<boost::signals2::connection> conns;
+ conns.push_back (presentity->updated.connect (boost::bind (boost::ref (presentity_updated), presentity)));
+ conns.push_back (presentity->removed.connect (boost::bind(boost::ref (presentity_removed),presentity)));
+ conns.push_back (presentity->trigger_reload.connect (boost::bind (&RL::Heap::refresh, this)));
+@@ -381,7 +381,7 @@
+ RL::Heap::push_presence (const std::string uri_,
+ const std::string presence)
+ {
+- for (std::map<PresentityPtr,std::list<boost::signals::connection> >::const_iterator
++ for (std::map<PresentityPtr,std::list<boost::signals2::connection> >::const_iterator
+ iter = presentities.begin ();
+ iter != presentities.end ();
+ ++iter) {
+@@ -395,7 +395,7 @@
+ RL::Heap::push_status (const std::string uri_,
+ const std::string status)
+ {
+- for (std::map<PresentityPtr,std::list<boost::signals::connection> >::const_iterator
++ for (std::map<PresentityPtr,std::list<boost::signals2::connection> >::const_iterator
+ iter = presentities.begin ();
+ iter != presentities.end ();
+ ++iter) {
+@@ -514,7 +514,7 @@
+ "contact on a remote server"));
+
+ std::set<std::string> all_groups;
+- for (std::map<PresentityPtr,std::list<boost::signals::connection> >::const_iterator
++ for (std::map<PresentityPtr,std::list<boost::signals2::connection> >::const_iterator
+ iter = presentities.begin ();
+ iter != presentities.end ();
+ ++iter) {
+--- ekiga-4.0.1/plugins/resource-list/rl-heap.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/resource-list/rl-heap.h.boost-signals2 2019-05-16 21:12:47.397170040 +0200
+@@ -90,7 +90,7 @@
+ void push_status (const std::string uri,
+ const std::string status);
+
+- boost::signal0<void> trigger_saving;
++ boost::signals2::signal<void(void)> trigger_saving;
+
+ private:
+
+@@ -106,7 +106,7 @@
+ boost::shared_ptr<xmlDoc> doc;
+ xmlNodePtr list_node;
+
+- std::map<PresentityPtr, std::list<boost::signals::connection> > presentities;
++ std::map<PresentityPtr, std::list<boost::signals2::connection> > presentities;
+
+ void refresh ();
+
+--- ekiga-4.0.1/plugins/resource-list/rl-list.cpp 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/resource-list/rl-list.cpp.boost-signals2 2019-05-16 21:13:38.853297909 +0200
+@@ -94,9 +94,9 @@
+
+ void publish () const;
+
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_added;
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_updated;
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_removed;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_added;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_updated;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_removed;
+
+
+ /* data for its children */
+@@ -104,7 +104,7 @@
+
+ std::list<ChildType> ordering;
+ std::list<boost::shared_ptr<List> > lists;
+- std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > > entries;
++ std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > > entries;
+ };
+
+
+@@ -235,12 +235,12 @@
+ (*iter)->flush ();
+ lists.clear ();
+
+- for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > >::iterator iter = entries.begin ();
++ for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > >::iterator iter = entries.begin ();
+ iter != entries.end ();
+ ++iter) {
+
+ iter->first->removed ();
+- for (std::list<boost::signals::connection>::iterator conn_iter
++ for (std::list<boost::signals2::connection>::iterator conn_iter
+ = iter->second.begin ();
+ conn_iter != iter->second.end ();
+ ++conn_iter)
+@@ -342,10 +342,10 @@
+ entry_pos,
+ display_name,
+ doc, child));
+- std::list<boost::signals::connection> conns;
++ std::list<boost::signals2::connection> conns;
+ conns.push_back (entry->updated.connect (boost::bind (boost::ref (entry_updated), entry)));
+ conns.push_back (entry->removed.connect (boost::bind (boost::ref (entry_removed), entry)));
+- entries.push_back (std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > (entry, conns));
++ entries.push_back (std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > (entry, conns));
+ ordering.push_back (ENTRY);
+ entry_pos++;
+ entry_added (entry);
+@@ -363,7 +363,7 @@
+ ++iter)
+ (*iter)->push_presence (uri_, presence);
+
+- for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > >::const_iterator iter = entries.begin ();
++ for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > >::const_iterator iter = entries.begin ();
+ iter != entries.end ();
+ ++iter) {
+
+@@ -381,7 +381,7 @@
+ ++iter)
+ (*iter)->push_status (uri_, status);
+
+- for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > >::const_iterator iter = entries.begin ();
++ for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > >::const_iterator iter = entries.begin ();
+ iter != entries.end ();
+ ++iter) {
+
+@@ -400,7 +400,7 @@
+ ++iter)
+ go_on = (*iter)->visit_presentities (visitor);
+
+- for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > >::const_iterator iter = entries.begin ();
++ for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > >::const_iterator iter = entries.begin ();
+ go_on && iter != entries.end ();
+ ++iter) {
+
+@@ -418,7 +418,7 @@
+ ++iter)
+ (*iter)->publish ();
+
+- for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals::connection> > >::const_iterator iter = entries.begin ();
++ for (std::list<std::pair<boost::shared_ptr<Entry>, std::list<boost::signals2::connection> > >::const_iterator iter = entries.begin ();
+ iter != entries.end ();
+ ++iter) {
+
+--- ekiga-4.0.1/plugins/resource-list/rl-list.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/resource-list/rl-list.h.boost-signals2 2019-05-16 21:14:05.516364301 +0200
+@@ -74,9 +74,9 @@
+
+ void publish () const;
+
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_added;
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_updated;
+- boost::signal1<void, boost::shared_ptr<Entry> > entry_removed;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_added;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_updated;
++ boost::signals2::signal<void(boost::shared_ptr<Entry>)> entry_removed;
+
+ /* this method orders the list to get rid of all its children */
+ void flush ();
+--- ekiga-4.0.1/plugins/resource-list/rl-presentity.h 2012-11-07 21:43:51.000000000 +0100
++++ ekiga-4.0.1/plugins/resource-list/rl-presentity.h.boost-signals2 2019-05-16 21:14:16.140390781 +0200
+@@ -79,7 +79,7 @@
+
+ bool populate_menu (Ekiga::MenuBuilder &);
+
+- boost::signal0<void> trigger_reload;
++ boost::signals2::signal<void(void)> trigger_reload;
+
+ private:
+
+--- ekiga-4.0.1/src/gui/assistant.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/src/gui/assistant.cpp.boost-signals2 2019-05-16 21:27:53.400468197 +0200
+@@ -95,7 +95,7 @@
+ gint last_active_page;
+
+ GtkListStore *summary_model;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ };
+
+ /* presenting the network connection type to the user */
+@@ -1679,7 +1679,7 @@
+ g_signal_connect (assistant, "key-press-event",
+ G_CALLBACK (ekiga_assistant_key_press_cb), NULL);
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+ assistant->priv->videoinput_core = service_core.get<Ekiga::VideoInputCore> ("videoinput-core");
+ assistant->priv->audioinput_core = service_core.get<Ekiga::AudioInputCore> ("audioinput-core");
+ assistant->priv->audiooutput_core = service_core.get<Ekiga::AudioOutputCore> ("audiooutput-core");
+--- ekiga-4.0.1/src/gui/main_window.cpp 2013-02-18 22:36:51.000000000 +0100
++++ ekiga-4.0.1/src/gui/main_window.cpp.boost-signals2 2019-05-16 21:27:43.064441457 +0200
+@@ -129,7 +129,7 @@
+ unsigned calling_state;
+
+ gulong roster_selection_connection_id;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+ };
+
+ /* properties */
+@@ -1706,7 +1706,7 @@
+ static void
+ ekiga_main_window_connect_engine_signals (EkigaMainWindow *mw)
+ {
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+
+ g_return_if_fail (EKIGA_IS_MAIN_WINDOW (mw));
+
+--- ekiga-4.0.1/src/gui/statusmenu.cpp 2013-02-18 22:37:04.000000000 +0100
++++ ekiga-4.0.1/src/gui/statusmenu.cpp.boost-signals2 2019-05-16 21:27:34.032418100 +0200
+@@ -51,7 +51,7 @@
+ struct _StatusMenuPrivate
+ {
+ boost::shared_ptr<Ekiga::PersonalDetails> personal_details;
+- std::vector<boost::signals::connection> connections;
++ std::vector<boost::signals2::connection> connections;
+
+ GtkListStore *list_store; // List store storing the menu
+ GtkWindow *parent; // Parent window
+@@ -796,7 +796,7 @@
+ {
+ StatusMenu *self = NULL;
+
+- boost::signals::connection conn;
++ boost::signals2::connection conn;
+ GtkCellRenderer *renderer = NULL;
+ GSList *custom_status_array [NUM_STATUS_TYPES];
+
diff --git a/network/ekiga/ekiga-4.0.1-gcc10.patch b/network/ekiga/ekiga-4.0.1-gcc10.patch
new file mode 100644
index 0000000000..2b23866439
--- /dev/null
+++ b/network/ekiga/ekiga-4.0.1-gcc10.patch
@@ -0,0 +1,11 @@
+diff -Nrup a/lib/engine/framework/services.cpp b/lib/engine/framework/services.cpp
+--- a/lib/engine/framework/services.cpp 2013-02-18 14:36:51.000000000 -0700
++++ b/lib/engine/framework/services.cpp 2019-09-23 19:38:14.662416178 -0600
+@@ -43,6 +43,7 @@
+ #include <iostream>
+ #endif
+
++#include <ostream>
+ #include "services.h"
+
+ boost::optional<bool>
diff --git a/network/ekiga/ekiga-4.0.1-libresolv.patch b/network/ekiga/ekiga-4.0.1-libresolv.patch
new file mode 100644
index 0000000000..7754eeb185
--- /dev/null
+++ b/network/ekiga/ekiga-4.0.1-libresolv.patch
@@ -0,0 +1,13 @@
+diff -up ekiga-4.0.1/configure.ac.libresolv ekiga-4.0.1/configure.ac
+--- ekiga-4.0.1/configure.ac.libresolv 2017-02-23 02:30:42.051227852 -0600
++++ ekiga-4.0.1/configure.ac 2017-02-23 02:32:04.609519837 -0600
+@@ -324,7 +324,8 @@ if test "x$enable_ldap" = "xyes"; then
+
+ dnl Checking for libresolv
+ if test ${gm_platform} = "linux" ; then
+- AC_CHECK_LIB(resolv, res_gethostbyaddr, [LIBS="-lresolv $LIBS"], AC_MSG_ERROR([You need the libresolv library to compile Ekiga]), -lresolv)
++ # AC_CHECK_LIB(resolv, res_gethostbyaddr, [LIBS="-lresolv $LIBS"], AC_MSG_ERROR([You need the libresolv library to compile Ekiga]), -lresolv)
++ AC_WARNING([Just adding libresolv to LDAP_LIBS, without checking anything])
+ LDAP_LIBS="${LDAP_LIBS} -lresolv"
+ fi
+ found_ldap="yes"
diff --git a/network/ekiga/ekiga.SlackBuild b/network/ekiga/ekiga.SlackBuild
index d22a4ee14d..adf5e1c069 100644
--- a/network/ekiga/ekiga.SlackBuild
+++ b/network/ekiga/ekiga.SlackBuild
@@ -107,10 +107,13 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+patch -p1 < $CWD/ekiga-4.0.1-libresolv.patch
+patch -p1 < $CWD/ekiga-4.0.1-boost-signals2.patch
+patch -p1 < $CWD/ekiga-4.0.1-gcc10.patch
# Fix for -current (20150722 dbs)
sed -e 's/gnome-icon-theme/adwaita-icon-theme/g' -i configure.ac
-autoconf
+autoreconf -vif
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \