Blob Blame Raw
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];