- upstream port to boost::signals2 auto/th/ekiga-4.0.1-20
authorJan Rękorajski <baggins@pld-linux.org>
Fri, 24 May 2019 06:58:51 +0000 (08:58 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Fri, 24 May 2019 06:58:51 +0000 (08:58 +0200)
- rel 20

boost-signals2.patch [new file with mode: 0644]
ekiga.spec

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