[SCM] tango branch, master, updated. debian/8.0.5+dfsg-3-9-gf485a73

Picca Frédéric-Emmanuel picca at debian.org
Tue Jul 9 12:09:20 UTC 2013


The following commit has been merged in the master branch:
commit da5c2f86550ecdad3a53ee879ddd1b40bc9ba6ae
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Tue Jun 11 14:17:11 2013 +0200

    update the patch series and create a new one for the C++11 check

diff --git a/debian/patches/0001-debian-fix_database_scripts.patch b/debian/patches/0001-debian-fix_database_scripts.patch
index 01aee96..9c18417 100644
--- a/debian/patches/0001-debian-fix_database_scripts.patch
+++ b/debian/patches/0001-debian-fix_database_scripts.patch
@@ -14,7 +14,7 @@ Signed-off-by: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
  1 file changed, 2 insertions(+), 6 deletions(-)
 
 diff --git a/cppserver/database/create_db.sql.in b/cppserver/database/create_db.sql.in
-index 43a9110..7840aaa 100644
+index 210a335..292d005 100644
 --- a/cppserver/database/create_db.sql.in
 +++ b/cppserver/database/create_db.sql.in
 @@ -1,12 +1,8 @@
@@ -31,7 +31,7 @@ index 43a9110..7840aaa 100644
  
  #
  # Init the history identifiers
-@@ -124,5 +120,5 @@ INSERT INTO property_class VALUES ('TangoAccessControl','AllowedAccessCmd',6,'Ge
+@@ -126,5 +122,5 @@ INSERT INTO property_class VALUES ('TangoAccessControl','AllowedAccessCmd',6,'Ge
  # Load the stored procedures
  #
  
diff --git a/debian/patches/0004-forwarded-upstream-use-the-autoconf-standard-macro-f.patch b/debian/patches/0004-forwarded-upstream-use-the-autoconf-standard-macro-f.patch
new file mode 100644
index 0000000..daafb52
--- /dev/null
+++ b/debian/patches/0004-forwarded-upstream-use-the-autoconf-standard-macro-f.patch
@@ -0,0 +1,323 @@
+From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
+Date: Tue, 11 Jun 2013 14:16:17 +0200
+Subject: forwarded upstream use the autoconf standard macro for C++11.
+
+---
+ configure.in                                      |   19 +--
+ cppserver/AbstractClass/AccessControl/Makefile.am |    2 -
+ cppserver/database/Makefile.am                    |    2 +-
+ cppserver/starter/Makefile.am                     |    2 -
+ cppserver/tangoaccesscontrol/Makefile.am          |    2 -
+ cppserver/tangotest/Makefile.am                   |    2 -
+ lib/cpp/client/Makefile.am                        |    2 +-
+ lib/cpp/server/Makefile.am                        |    2 +-
+ lib/cpp/tango.pc.in                               |    2 +-
+ m4/ax_cxx_compile_stdcxx_11.m4                    |  133 +++++++++++++++++++++
+ utils/notifd2db/Makefile.am                       |    2 -
+ utils/tango_admin/Makefile.am                     |    2 -
+ 12 files changed, 140 insertions(+), 32 deletions(-)
+ create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4
+
+diff --git a/configure.in b/configure.in
+index ff8f537..0e9a968 100644
+--- a/configure.in
++++ b/configure.in
+@@ -74,21 +74,9 @@ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+ 
+-# Check gcc release
+-	 
+- if test "$CXX" = "c++" -o "$CXX" = "g++"
+- then
+-     gcc_AC_HAVE_GCC_VERSION(3,2,0)
+-     if test "x$ac_cv_gcc_version_3_2_0" = "xno"; then
+-         AC_MSG_ERROR([Not supported gcc release. Should be 3.2.0 or above. Please update !],-1)
+-     fi
+-     gcc_AC_HAVE_GCC_VERSION(4,3,0)
+-     if test "x$ac_cv_gcc_version_4_3_0" = "xyes"; then
+-		CPP_ELEVEN="-std=c++0x"
+-	 else
+-		CPP_ELEVEN=""
+-	 fi
+- fi
++# Check if c++11 is supported.
++
++AX_CXX_COMPILE_STDCXX_11([noext],[optional])
+ 
+ # Check if Java interpreter is there
+ 
+@@ -369,7 +357,6 @@ fi
+ 
+ AC_SUBST(JPEG_LIB_CXXFLAGS)
+ AC_SUBST(JPEG_MMX_LIB_CXXFLAGS)
+-AC_SUBST(CPP_ELEVEN)
+ 
+ # Define a conditional variables to enable or disable installation
+ # of the database server and the database schema creation. 
+diff --git a/cppserver/AbstractClass/AccessControl/Makefile.am b/cppserver/AbstractClass/AccessControl/Makefile.am
+index 3620747..5b030c6 100644
+--- a/cppserver/AbstractClass/AccessControl/Makefile.am
++++ b/cppserver/AbstractClass/AccessControl/Makefile.am
+@@ -5,8 +5,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
+            -I$(top_srcdir)/lib/cpp/log4tango/include \
+            -I$(top_builddir)/lib/cpp/log4tango/include
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ # We're making a libtool convenience library which is not to be installed,
+ # therefore the automake noinst variable
+ noinst_LTLIBRARIES = libaccesscontrol.la
+diff --git a/cppserver/database/Makefile.am b/cppserver/database/Makefile.am
+index 97d7460..eb9af4d 100644
+--- a/cppserver/database/Makefile.am
++++ b/cppserver/database/Makefile.am
+@@ -6,7 +6,7 @@ INCLUDES = $(ORB_INCLUDE_PREFIX)  $(LIBZMQ_CFLAGS) \
+       	$(MYSQLCLIENT_CFLAGS) \
+       	$(ZLIB_CPPFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@ -Wall -D_FORTIFY_SOURCE=2 -O1 -fpie
++AM_CXXFLAGS=  -Wall -D_FORTIFY_SOURCE=2 -O1 -fpie
+ 
+ LDADD = -L$(top_builddir)/lib/cpp/server -ltango -L$(top_builddir)/lib/cpp/log4tango/src \
+ 		-llog4tango $(MYSQLCLIENT_LDFLAGS) \
+diff --git a/cppserver/starter/Makefile.am b/cppserver/starter/Makefile.am
+index 0ba3b9b..aecbb52 100644
+--- a/cppserver/starter/Makefile.am
++++ b/cppserver/starter/Makefile.am
+@@ -5,8 +5,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/server \
+            -I$(top_srcdir)/lib/cpp/log4tango/include \
+            -I$(top_builddir)/lib/cpp/log4tango/include $(LIBZMQ_CFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ LDADD = -L$(top_builddir)/lib/cpp/server -ltango \
+         -L$(top_builddir)/lib/cpp/log4tango/src -llog4tango \
+ 		$(LIBZMQ_LIBS)
+diff --git a/cppserver/tangoaccesscontrol/Makefile.am b/cppserver/tangoaccesscontrol/Makefile.am
+index 60580c9..71754bd 100644
+--- a/cppserver/tangoaccesscontrol/Makefile.am
++++ b/cppserver/tangoaccesscontrol/Makefile.am
+@@ -7,8 +7,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
+ 		   -I$(top_srcdir)/cppserver/AbstractClass/AccessControl \
+ 		   $(MYSQLCLIENT_CFLAGS) $(LIBZMQ_CFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ bin_PROGRAMS=TangoAccessControl
+ 
+ TangoAccessControl_SOURCES=ClassFactory.cpp     		\
+diff --git a/cppserver/tangotest/Makefile.am b/cppserver/tangotest/Makefile.am
+index 73c72a5..e332986 100644
+--- a/cppserver/tangotest/Makefile.am
++++ b/cppserver/tangotest/Makefile.am
+@@ -4,8 +4,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
+            -I$(top_srcdir)/lib/cpp/log4tango/include \
+            -I$(top_builddir)/lib/cpp/log4tango/include  $(LIBZMQ_CFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ LDADD = -L$(top_builddir)/lib/cpp/server -ltango \
+         -L$(top_builddir)/lib/cpp/log4tango/src -llog4tango \
+  		$(LIBZMQ_LIBS)
+diff --git a/lib/cpp/client/Makefile.am b/lib/cpp/client/Makefile.am
+index 192fbe8..f914e96 100644
+--- a/lib/cpp/client/Makefile.am
++++ b/lib/cpp/client/Makefile.am
+@@ -10,7 +10,7 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/server \
+ # therefore the automake noinst variable
+ noinst_LTLIBRARIES = libclient.la
+ 
+-AM_CXXFLAGS=-D_TANGO_LIB @CPP_ELEVEN@
++AM_CXXFLAGS=-D_TANGO_LIB
+ 
+ # These are the sources for the library.
+ libclient_la_SOURCES = dbapi_class.cpp     	\
+diff --git a/lib/cpp/server/Makefile.am b/lib/cpp/server/Makefile.am
+index 9334e62..d519df4 100644
+--- a/lib/cpp/server/Makefile.am
++++ b/lib/cpp/server/Makefile.am
+@@ -20,7 +20,7 @@ libtango_la_LIBADD = ../client/libclient.la	\
+ # generate the correct .so version
+ libtango_la_LDFLAGS=-version-info $(VERSION_INFO)
+ 
+-AM_CXXFLAGS=-D_TANGO_LIB @CPP_ELEVEN@
++AM_CXXFLAGS=-D_TANGO_LIB
+ 
+ if DARWIN_ENABLED
+ AM_LDFLAGS=-flat_namespace --disable-dependency-tracking
+diff --git a/lib/cpp/tango.pc.in b/lib/cpp/tango.pc.in
+index 95f472e..870c07d 100644
+--- a/lib/cpp/tango.pc.in
++++ b/lib/cpp/tango.pc.in
+@@ -8,4 +8,4 @@ Description: The tango constrol system library
+ Requires: omniDynamic4 >= 4.1.2, omniCOS4, log4tango, libzmq
+ Version: @VERSION@
+ Libs: -L${libdir} -ltango
+-Cflags: @CPP_ELEVEN@ -I${includedir}/tango
++Cflags: -I${includedir}/tango
+diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
+new file mode 100644
+index 0000000..af37acd
+--- /dev/null
++++ b/m4/ax_cxx_compile_stdcxx_11.m4
+@@ -0,0 +1,133 @@
++# ============================================================================
++#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
++# ============================================================================
++#
++# SYNOPSIS
++#
++#   AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
++#
++# DESCRIPTION
++#
++#   Check for baseline language coverage in the compiler for the C++11
++#   standard; if necessary, add switches to CXXFLAGS to enable support.
++#
++#   The first argument, if specified, indicates whether you insist on an
++#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
++#   -std=c++11).  If neither is specified, you get whatever works, with
++#   preference for an extended mode.
++#
++#   The second argument, if specified 'mandatory' or if left unspecified,
++#   indicates that baseline C++11 support is required and that the macro
++#   should error out if no mode with that support is found.  If specified
++#   'optional', then configuration proceeds regardless, after defining
++#   HAVE_CXX11 if and only if a supporting mode is found.
++#
++# LICENSE
++#
++#   Copyright (c) 2008 Benjamin Kosnik <bkoz at redhat.com>
++#   Copyright (c) 2012 Zack Weinberg <zackw at panix.com>
++#   Copyright (c) 2013 Roy Stogner <roystgnr at ices.utexas.edu>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved. This file is offered as-is, without any
++#   warranty.
++
++#serial 3
++
++m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
++  template <typename T>
++    struct check
++    {
++      static_assert(sizeof(int) <= sizeof(T), "not big enough");
++    };
++
++    typedef check<check<bool>> right_angle_brackets;
++
++    int a;
++    decltype(a) b;
++
++    typedef check<int> check_type;
++    check_type c;
++    check_type&& cr = static_cast<check_type&&>(c);
++
++    auto d = a;
++])
++
++AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
++  m4_if([$1], [], [],
++        [$1], [ext], [],
++        [$1], [noext], [],
++        [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
++  m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
++        [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
++        [$2], [optional], [ax_cxx_compile_cxx11_required=false],
++        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
++  AC_LANG_PUSH([C++])dnl
++  ac_success=no
++  AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
++  ax_cv_cxx_compile_cxx11,
++  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++    [ax_cv_cxx_compile_cxx11=yes],
++    [ax_cv_cxx_compile_cxx11=no])])
++  if test x$ax_cv_cxx_compile_cxx11 = xyes; then
++    ac_success=yes
++  fi
++
++  m4_if([$1], [noext], [], [dnl
++  if test x$ac_success = xno; then
++    for switch in -std=gnu++11 -std=gnu++0x; do
++      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
++      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
++                     $cachevar,
++        [ac_save_CXXFLAGS="$CXXFLAGS"
++         CXXFLAGS="$CXXFLAGS $switch"
++         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++          [eval $cachevar=yes],
++          [eval $cachevar=no])
++         CXXFLAGS="$ac_save_CXXFLAGS"])
++      if eval test x\$$cachevar = xyes; then
++        CXXFLAGS="$CXXFLAGS $switch"
++        ac_success=yes
++        break
++      fi
++    done
++  fi])
++
++  m4_if([$1], [ext], [], [dnl
++  if test x$ac_success = xno; then
++    for switch in -std=c++11 -std=c++0x; do
++      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
++      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
++                     $cachevar,
++        [ac_save_CXXFLAGS="$CXXFLAGS"
++         CXXFLAGS="$CXXFLAGS $switch"
++         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
++          [eval $cachevar=yes],
++          [eval $cachevar=no])
++         CXXFLAGS="$ac_save_CXXFLAGS"])
++      if eval test x\$$cachevar = xyes; then
++        CXXFLAGS="$CXXFLAGS $switch"
++        ac_success=yes
++        break
++      fi
++    done
++  fi])
++  AC_LANG_POP([C++])
++  if test x$ax_cxx_compile_cxx11_required = xtrue; then
++    if test x$ac_success = xno; then
++      AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
++    fi
++  else
++    if test x$ac_success = xno; then
++      HAVE_CXX11=0
++      AC_MSG_NOTICE([No compiler with C++11 support was found])
++    else
++      HAVE_CXX11=1
++      AC_DEFINE(HAVE_CXX11,1,
++                [define if the compiler supports basic C++11 syntax])
++    fi
++
++    AC_SUBST(HAVE_CXX11)
++  fi
++])
+diff --git a/utils/notifd2db/Makefile.am b/utils/notifd2db/Makefile.am
+index 23ad7d6..74837e0 100644
+--- a/utils/notifd2db/Makefile.am
++++ b/utils/notifd2db/Makefile.am
+@@ -4,8 +4,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
+            -I$(top_srcdir)/lib/cpp/log4tango/include \
+            -I$(top_builddir)/lib/cpp/log4tango/include $(LIBZMQ_CFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ LDADD = -L$(top_builddir)/lib/cpp/server -ltango \
+         -L$(top_builddir)/lib/cpp/log4tango/src -llog4tango \
+ 		$(LIBZMQ_LIBS)
+diff --git a/utils/tango_admin/Makefile.am b/utils/tango_admin/Makefile.am
+index dde9677..1f7551e 100644
+--- a/utils/tango_admin/Makefile.am
++++ b/utils/tango_admin/Makefile.am
+@@ -4,8 +4,6 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
+            -I$(top_srcdir)/lib/cpp/log4tango/include \
+            -I$(top_builddir)/lib/cpp/log4tango/include $(LIBZMQ_CFLAGS)
+ 
+-AM_CXXFLAGS= @CPP_ELEVEN@
+-
+ LDADD = -L$(top_builddir)/lib/cpp/server -ltango \
+         -L$(top_builddir)/lib/cpp/log4tango/src -llog4tango \
+ 		$(LIBZMQ_LIBS)
diff --git a/debian/patches/0004-upstream-fix-p805_1.patch b/debian/patches/0004-upstream-fix-p805_1.patch
deleted file mode 100644
index 279f9d4..0000000
--- a/debian/patches/0004-upstream-fix-p805_1.patch
+++ /dev/null
@@ -1,470 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Sat, 15 Sep 2012 22:13:16 +0200
-Subject: upstream fix p805_1
-
----
- lib/cpp/client/dbapi_base.cpp  |   29 +++++----
- lib/cpp/client/dbapi_datum.cpp |    5 ++
- lib/cpp/client/proxy_asyn.cpp  |   51 ++++++++++-----
- lib/cpp/server/dev_poll.cpp    |   39 +++++++-----
- lib/cpp/server/dserver.cpp     |    1 +
- lib/cpp/server/dserverpoll.cpp |  133 +++++++++++++++++++++-------------------
- lib/cpp/server/eventcmds.cpp   |    4 +-
- lib/cpp/server/pollobj.h       |   10 +--
- 8 files changed, 161 insertions(+), 111 deletions(-)
-
-diff --git a/lib/cpp/client/dbapi_base.cpp b/lib/cpp/client/dbapi_base.cpp
-index 20fc8b7..e7baf64 100644
---- a/lib/cpp/client/dbapi_base.cpp
-+++ b/lib/cpp/client/dbapi_base.cpp
-@@ -733,7 +733,7 @@ string Database::get_info()
- 	{
- 		ostream << (*db_info_list)[i].in() << endl;
- 	}
--	ostream << ends;
-+
- 	string ret_str = ostream.str();
- 
- 	return(ret_str);
-@@ -3808,18 +3808,23 @@ DbDatum Database::get_services(string &servname,string &instname)
- 	DbServerCache *dsc;
- 	if (au->in_server() == true)
- 	{
--		try
--		{
--			Tango::Util *tg = Tango::Util::instance(false);
--			dsc = tg->get_db_cache();
--		}
--		catch (Tango::DevFailed &e)
-+		if (from_env_var == false)
-+			dsc = NULL;
-+		else
- 		{
--            string reason = e.errors[0].reason.in();
--            if (reason == "API_UtilSingletonNotCreated" && ext->db_tg != NULL)
--                dsc = ext->db_tg->get_db_cache();
--            else
--                dsc = NULL;
-+			try
-+			{
-+				Tango::Util *tg = Tango::Util::instance(false);
-+				dsc = tg->get_db_cache();
-+			}
-+			catch (Tango::DevFailed &e)
-+			{
-+				string reason = e.errors[0].reason.in();
-+				if (reason == "API_UtilSingletonNotCreated" && ext->db_tg != NULL)
-+					dsc = ext->db_tg->get_db_cache();
-+				else
-+					dsc = NULL;
-+			}
- 		}
- 	}
- 	else
-diff --git a/lib/cpp/client/dbapi_datum.cpp b/lib/cpp/client/dbapi_datum.cpp
-index 157d051..d85e2a0 100644
---- a/lib/cpp/client/dbapi_datum.cpp
-+++ b/lib/cpp/client/dbapi_datum.cpp
-@@ -77,6 +77,11 @@ DbDatum::DbDatum():ext(Tango_NullPtr)
- 
- DbDatum::~DbDatum()
- {
-+#ifndef HAS_UNIQUE_PTR
-+	#ifndef _TG_WINDOWS_
-+    delete ext;
-+    #endif
-+#endif
- }
- 
- //-----------------------------------------------------------------------------
-diff --git a/lib/cpp/client/proxy_asyn.cpp b/lib/cpp/client/proxy_asyn.cpp
-index ac0356b..e9d9b5a 100644
---- a/lib/cpp/client/proxy_asyn.cpp
-+++ b/lib/cpp/client/proxy_asyn.cpp
-@@ -380,8 +380,8 @@ DeviceData Connection::command_inout_reply(long id)
- 
- //
- // Check if the exception was a connection exception
--// In this case, try to ping the device.
--// If successfull, just returns otherwise, throw the first exception
-+// If so, execute the command synchronously (tries to reconnect)
-+// If successful just return, otherwise throw the first exception
- //
- 
- 			string ex(cb_excep_mess);
-@@ -390,14 +390,6 @@ DeviceData Connection::command_inout_reply(long id)
- 			{
- 				try
- 				{
--					DeviceProxy *dev_ptr = static_cast<DeviceProxy *>(this);
--					dev_ptr->ping();
--
--//
--// If we arrive here, this means we have to do a re-try with a synchronous
--// request
--//
--
- 					DeviceData dd_out = redo_synch_cmd(req);
- 
- //
-@@ -502,15 +494,16 @@ DeviceData Connection::command_inout_reply(long id,long call_timeout)
- 
- 		for (i = 0;i < nb;i++)
- 		{
-+			if (req.request->poll_response() == true)
-+			{
-+				break;
-+			}
-+
- #ifdef _TG_WINDOWS_
- 			Sleep(20);
- #else
- 			nanosleep(&to_wait,&inter);
- #endif
--			if (req.request->poll_response() == true)
--			{
--				break;
--			}
- 		}
- 
- 		if (i == nb)
-@@ -626,7 +619,7 @@ DeviceData Connection::command_inout_reply(long id,long call_timeout)
- 			set_connection_state(CONNECTION_NOTOK);
- 
- //
--// Re-throw all CORBA system exceptions
-+// Re-throw nearly all CORBA system exceptions
- //
- 
- 			CORBA::NVList_ptr req_arg = req.request->arguments();
-@@ -637,6 +630,34 @@ DeviceData Connection::command_inout_reply(long id,long call_timeout)
- 
- 			char *cb_excep_mess = Tango::Except::print_CORBA_SystemException(sys_ex);
- 
-+//
-+// Check if the exception was a connection exception
-+// If so, execute the command synchronously (tries to reconnect)
-+// If successful just return, otherwise throw the first exception
-+//
-+
-+			string ex(cb_excep_mess);
-+			string::size_type pos = ex.find("TRANSIENT_ConnectFailed");
-+			if (pos != string::npos)
-+			{
-+				try
-+				{
-+					DeviceData dd_out = redo_synch_cmd(req);
-+
-+//
-+// Remove request from request global table.
-+//
-+
-+					CORBA::string_free(tmp);
-+
-+					remove_asyn_request(id);
-+
-+					return dd_out;
-+
-+				}
-+				catch (Tango::DevFailed &) {}
-+			}
-+
- 			TangoSys_OMemStream desc;
- 			desc << "Failed to execute command_inout_asynch on device " << dev_name();
- 			desc << ", command " << tmp << ends;
-diff --git a/lib/cpp/server/dev_poll.cpp b/lib/cpp/server/dev_poll.cpp
-index 4840e70..26c6aea 100644
---- a/lib/cpp/server/dev_poll.cpp
-+++ b/lib/cpp/server/dev_poll.cpp
-@@ -324,6 +324,13 @@ void DeviceImpl::poll_object(const string &obj_name,int period,PollObjType type)
- {
-     Tango::Util *tg = Tango::Util::instance();
- 
-+	if (tg->is_svr_shutting_down() == true)
-+	{
-+		Except::throw_exception((const char *)"API_NotSupported",
-+								(const char *)"It's not supported to start polling on any device cmd/attr while the device is shutting down",
-+								(const char *)"DeviceImpl::poll_object");
-+	}
-+
-     if (tg->is_svr_starting() == true)
-     {
- 
-@@ -550,30 +557,34 @@ void DeviceImpl::stop_poll_object(const string &obj_name,PollObjType type)
-     else
-     {
- 
-+		if (tg->is_device_restarting(device_name) == false)
-+		{
-+
- //
- // Ask the admin device to do the work (simulating the classical
- // way to tune polling)
- //
- 
--        DServer *ds = tg->get_dserver_device();
--        CORBA::Any the_any;
-+			DServer *ds = tg->get_dserver_device();
-+			CORBA::Any the_any;
- 
--        DevVarStringArray *send = new DevVarStringArray();
--        send->length(3);
-+			DevVarStringArray *send = new DevVarStringArray();
-+			send->length(3);
- 
--        (*send)[0] = CORBA::string_dup(get_name().c_str());
--        if (type == POLL_CMD)
--            (*send)[1] = CORBA::string_dup("command");
--        else
--            (*send)[1] = CORBA::string_dup("attribute");
--        (*send)[2] = CORBA::string_dup(obj_name.c_str());
-+			(*send)[0] = CORBA::string_dup(get_name().c_str());
-+			if (type == POLL_CMD)
-+				(*send)[1] = CORBA::string_dup("command");
-+			else
-+				(*send)[1] = CORBA::string_dup("attribute");
-+			(*send)[2] = CORBA::string_dup(obj_name.c_str());
- 
--        the_any <<= send;
-+			the_any <<= send;
- 
--        CORBA::Any *received_any;
-+			CORBA::Any *received_any;
- 
--        received_any = ds->command_inout("RemObjPolling",the_any);
--        delete received_any;
-+			received_any = ds->command_inout("RemObjPolling",the_any);
-+			delete received_any;
-+		}
-     }
- }
- 
-diff --git a/lib/cpp/server/dserver.cpp b/lib/cpp/server/dserver.cpp
-index 9f8898c..698a7c9 100644
---- a/lib/cpp/server/dserver.cpp
-+++ b/lib/cpp/server/dserver.cpp
-@@ -940,6 +940,7 @@ void DServer::restart(string &d_name)
- 	DeviceImpl *new_dev = NULL;
- 
- 	vector<Tango::DeviceImpl *> &d_list = dev_cl->get_device_list();
-+
- 	for (i = 0;i < d_list.size();i++)
- 	{
- 		if (d_list[i]->get_name() == lower_d_name)
-diff --git a/lib/cpp/server/dserverpoll.cpp b/lib/cpp/server/dserverpoll.cpp
-index 3d2caa1..dd5efa8 100644
---- a/lib/cpp/server/dserverpoll.cpp
-+++ b/lib/cpp/server/dserverpoll.cpp
-@@ -1338,97 +1338,102 @@ void DServer::rem_obj_polling(const Tango::DevVarStringArray *argin,bool with_db
- //
- 
- 	PollingThreadInfo *th_info;
-+	int poll_th_id;
- 
--	int poll_th_id = tg->get_polling_thread_id_by_name((*argin)[0]);
--	if (poll_th_id == 0)
-+	if (tg->is_svr_shutting_down() == false)
- 	{
--		TangoSys_OMemStream o;
--		o << "Can't find a polling thread for device " << (*argin)[0] << ends;
--		Except::throw_exception((const char *)"API_NotSupported",o.str(),
--						(const char *)"DServer::rem_obj_polling");
--	}
-+		poll_th_id = tg->get_polling_thread_id_by_name((*argin)[0]);
-+		if (poll_th_id == 0)
-+		{
-+			TangoSys_OMemStream o;
-+			o << "Can't find a polling thread for device " << (*argin)[0] << ends;
-+			Except::throw_exception((const char *)"API_NotSupported",o.str(),
-+							(const char *)"DServer::rem_obj_polling");
-+		}
- 
--	cout4 << "Thread in charge of device " << (*argin)[0] << " is thread " << poll_th_id << endl;
--	th_info = tg->get_polling_thread_info_by_id(poll_th_id);
-+		cout4 << "Thread in charge of device " << (*argin)[0] << " is thread " << poll_th_id << endl;
-+		th_info = tg->get_polling_thread_info_by_id(poll_th_id);
- 
- //
- // Test whether the polling thread is still running!
- //
- 
--	if ( th_info->poll_th != NULL )
--	{
-+		if ( th_info->poll_th != NULL )
-+		{
-+
- //
- // Send command to the polling thread
- //
- 
--		cout4 << "Sending cmd to polling thread" << endl;
--		TangoMonitor &mon = th_info->poll_mon;
--		PollThCmd &shared_cmd = th_info->shared_data;
-+			cout4 << "Sending cmd to polling thread" << endl;
-+			TangoMonitor &mon = th_info->poll_mon;
-+			PollThCmd &shared_cmd = th_info->shared_data;
- 
--        int th_id = omni_thread::self()->id();
--        if (th_id != poll_th_id)
--		{
--			omni_mutex_lock sync(mon);
--			if (shared_cmd.cmd_pending == true)
-+			int th_id = omni_thread::self()->id();
-+			if (th_id != poll_th_id)
- 			{
--				mon.wait();
--			}
--			shared_cmd.cmd_pending = true;
--			if (tmp_upd == 0)
--				shared_cmd.cmd_code = POLL_REM_EXT_TRIG_OBJ;
--			else
--				shared_cmd.cmd_code = POLL_REM_OBJ;
--			shared_cmd.dev = dev;
--			shared_cmd.name = obj_name;
--			shared_cmd.type = type;
-+				omni_mutex_lock sync(mon);
-+				if (shared_cmd.cmd_pending == true)
-+				{
-+					mon.wait();
-+				}
-+				shared_cmd.cmd_pending = true;
-+				if (tmp_upd == 0)
-+					shared_cmd.cmd_code = POLL_REM_EXT_TRIG_OBJ;
-+				else
-+					shared_cmd.cmd_code = POLL_REM_OBJ;
-+				shared_cmd.dev = dev;
-+				shared_cmd.name = obj_name;
-+				shared_cmd.type = type;
- 
--			mon.signal();
-+				mon.signal();
- 
--			cout4 << "Cmd sent to polling thread" << endl;
-+				cout4 << "Cmd sent to polling thread" << endl;
- 
- //
- // Wait for thread to execute command except if the command is
- // requested by the polling thread itself
- //
- 
--			int th_id = omni_thread::self()->id();
--			if (th_id != poll_th_id)
--			{
--				while (shared_cmd.cmd_pending == true)
-+				int th_id = omni_thread::self()->id();
-+				if (th_id != poll_th_id)
- 				{
--					int interupted = mon.wait(DEFAULT_TIMEOUT);
--					if ((shared_cmd.cmd_pending == true) && (interupted == false))
-+					while (shared_cmd.cmd_pending == true)
- 					{
--						cout4 << "TIME OUT" << endl;
--						Except::throw_exception((const char *)"API_CommandTimedOut",
--					        		(const char *)"Polling thread blocked !!!",
--					        		(const char *)"DServer::rem_obj_polling");
-+						int interupted = mon.wait(DEFAULT_TIMEOUT);
-+						if ((shared_cmd.cmd_pending == true) && (interupted == false))
-+						{
-+							cout4 << "TIME OUT" << endl;
-+							Except::throw_exception((const char *)"API_CommandTimedOut",
-+										(const char *)"Polling thread blocked !!!",
-+										(const char *)"DServer::rem_obj_polling");
-+						}
- 					}
- 				}
- 			}
--		}
--        else
--        {
--            shared_cmd.cmd_pending = true;
--			if (tmp_upd == 0)
--				shared_cmd.cmd_code = POLL_REM_EXT_TRIG_OBJ;
- 			else
--				shared_cmd.cmd_code = POLL_REM_OBJ;
--            shared_cmd.dev = dev;
--            shared_cmd.name = obj_name;
--            shared_cmd.type = type;
--
--            shared_cmd.index = distance(dev->get_poll_obj_list().begin(),ite);
--
--            PollThread *poll_th = th_info->poll_th;
--            poll_th->set_local_cmd(shared_cmd);
--            poll_th->execute_cmd();
--        }
--		cout4 << "Thread cmd normally executed" << endl;
--	}
--	else
--	{
--		cout4 << "Polling thread is no longer running!!!!" << endl;
-+			{
-+				shared_cmd.cmd_pending = true;
-+				if (tmp_upd == 0)
-+					shared_cmd.cmd_code = POLL_REM_EXT_TRIG_OBJ;
-+				else
-+					shared_cmd.cmd_code = POLL_REM_OBJ;
-+				shared_cmd.dev = dev;
-+				shared_cmd.name = obj_name;
-+				shared_cmd.type = type;
-+
-+				shared_cmd.index = distance(dev->get_poll_obj_list().begin(),ite);
-+
-+				PollThread *poll_th = th_info->poll_th;
-+				poll_th->set_local_cmd(shared_cmd);
-+				poll_th->execute_cmd();
-+			}
-+			cout4 << "Thread cmd normally executed" << endl;
-+		}
-+		else
-+		{
-+			cout4 << "Polling thread is no longer running!!!!" << endl;
-+		}
- 	}
- 
- //
-@@ -1604,7 +1609,7 @@ void DServer::rem_obj_polling(const Tango::DevVarStringArray *argin,bool with_db
- // Kill the thread if needed and join
- //
- 
--		if (kill_thread == true)
-+		if (kill_thread == true  && tg->is_svr_shutting_down() == false)
- 		{
- 			TangoMonitor &mon = th_info->poll_mon;
- 			PollThCmd &shared_cmd = th_info->shared_data;
-diff --git a/lib/cpp/server/eventcmds.cpp b/lib/cpp/server/eventcmds.cpp
-index cbf0014..467f42c 100644
---- a/lib/cpp/server/eventcmds.cpp
-+++ b/lib/cpp/server/eventcmds.cpp
-@@ -345,7 +345,9 @@ void DServer::event_subscription(string &dev_name,string &attr_name,string &acti
- 						{
- 							if ((attribute.ext->archive_abs_change[0] == INT_MAX) &&
- 					      		(attribute.ext->archive_abs_change[1] == INT_MAX) &&
--						   	    (attribute.ext->archive_period        == INT_MAX))
-+								(attribute.ext->archive_rel_change[0] == INT_MAX) &&
-+								(attribute.ext->archive_rel_change[1] == INT_MAX) &&
-+								(attribute.ext->archive_period        == INT_MAX))
- 							{
- 								TangoSys_OMemStream o;
- 								o << "Archive event properties (archive_abs_change or archive_rel_change or archive_period) for attribute ";
-diff --git a/lib/cpp/server/pollobj.h b/lib/cpp/server/pollobj.h
-index 1d504ef..22b684a 100644
---- a/lib/cpp/server/pollobj.h
-+++ b/lib/cpp/server/pollobj.h
-@@ -131,13 +131,13 @@ public:
- 	void get_attr_history_43(long n,Tango::DevAttrHistoryList_3 *ptr,long type);
- 
- protected:
--	DeviceImpl		*dev;
--	PollObjType		type;
--	string 			name;
-+	DeviceImpl			*dev;
-+	PollObjType			type;
-+	string 				name;
- 	struct timeval		upd;
- 	struct timeval		needed_time;
--	double			max_delta_t;
--	PollRing		ring;
-+	double				max_delta_t;
-+	PollRing			ring;
- };
- 
- inline bool operator<(const PollObj &,const PollObj &)
diff --git a/debian/patches/0005-fix-forwaded-upstream-add-LIBZMQ_LIBS-to-libtango.patch b/debian/patches/0005-fix-forwaded-upstream-add-LIBZMQ_LIBS-to-libtango.patch
deleted file mode 100644
index 601d655..0000000
--- a/debian/patches/0005-fix-forwaded-upstream-add-LIBZMQ_LIBS-to-libtango.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Sat, 22 Sep 2012 10:37:02 +0200
-Subject: fix forwaded upstream add LIBZMQ_LIBS to libtango
-
----
- lib/cpp/server/Makefile.am |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/lib/cpp/server/Makefile.am b/lib/cpp/server/Makefile.am
-index 2f4d63e..7189995 100644
---- a/lib/cpp/server/Makefile.am
-+++ b/lib/cpp/server/Makefile.am
-@@ -10,10 +10,12 @@ INCLUDES = -I$(top_srcdir)/lib/cpp/client \
- lib_LTLIBRARIES=libtango.la
- 
- # We need the libclient to link
--libtango_la_LIBADD = ../client/libclient.la	\
--						../log4tango/src/liblog4tango.la \
--						jpeg/libjpeg.la \
--						jpeg_mmx/libjpeg_mmx.la
-+libtango_la_LIBADD = \
-+	../client/libclient.la	\
-+	../log4tango/src/liblog4tango.la \
-+	jpeg/libjpeg.la \
-+	jpeg_mmx/libjpeg_mmx.la \
-+	$(LIBZMQ_LIBS)
- 
- # We need to set the -version-info for libtool so that libtool will
- # generate the correct .so version
diff --git a/debian/patches/0006-upstream-fix-p805_2.patch b/debian/patches/0006-upstream-fix-p805_2.patch
deleted file mode 100644
index 907c6fa..0000000
--- a/debian/patches/0006-upstream-fix-p805_2.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Sat, 27 Oct 2012 21:18:17 +0200
-Subject: upstream fix p805_2
-
----
- lib/cpp/client/accessproxy.cpp      |    2 +
- lib/cpp/client/accessproxy.h        |    1 +
- lib/cpp/client/api_util.cpp         |    2 +
- lib/cpp/client/eventconsumer.h      |    1 +
- lib/cpp/client/eventkeepalive.cpp   |    1 -
- lib/cpp/client/zmqeventconsumer.cpp |  113 ++++++++++++++++-------------------
- 6 files changed, 59 insertions(+), 61 deletions(-)
-
-diff --git a/lib/cpp/client/accessproxy.cpp b/lib/cpp/client/accessproxy.cpp
-index 085584a..03abde5 100644
---- a/lib/cpp/client/accessproxy.cpp
-+++ b/lib/cpp/client/accessproxy.cpp
-@@ -122,6 +122,8 @@ AccessControlType AccessProxy::check_access_control(string &devname)
- 	bool multi_ip = true;
- 	bool two_tries = false;
- 
-+	omni_mutex_lock oml(only_one);
-+
- 	while (two_tries == false)
- 	{
- 		try
-diff --git a/lib/cpp/client/accessproxy.h b/lib/cpp/client/accessproxy.h
-index 86c7d5e..6eae01e 100644
---- a/lib/cpp/client/accessproxy.h
-+++ b/lib/cpp/client/accessproxy.h
-@@ -48,6 +48,7 @@ protected:
- 	vector<string>					host_ips;
- 	bool							forced;
- 	map<string,vector<string> > 	allowed_cmd_table;
-+	omni_mutex						only_one;
- 
- 	void get_allowed_commands(string &,vector<string> &);
- 
-diff --git a/lib/cpp/client/api_util.cpp b/lib/cpp/client/api_util.cpp
-index 795f9c1..08d9bad 100644
---- a/lib/cpp/client/api_util.cpp
-+++ b/lib/cpp/client/api_util.cpp
-@@ -1489,6 +1489,8 @@ int ApiUtil::get_env_var(const char *env_var_name,string &env_var)
- 
- void ApiUtil::get_ip_from_if(vector<string> &ip_adr_list)
- {
-+	omni_mutex_lock oml(lock_th_map);
-+
-     if (ext->host_ip_adrs.empty() == true)
-     {
- #ifndef _TG_WINDOWS_
-diff --git a/lib/cpp/client/eventconsumer.h b/lib/cpp/client/eventconsumer.h
-index 8f1231d..c324edd 100644
---- a/lib/cpp/client/eventconsumer.h
-+++ b/lib/cpp/client/eventconsumer.h
-@@ -513,6 +513,7 @@ private :
-     DevErrorList_var                        del;
- 
-     int                                     old_poll_nb;
-+	omni_mutex								subscription_mutex;
- 
- 	void *run_undetached(void *arg);
- 	void push_heartbeat_event(string &);
-diff --git a/lib/cpp/client/eventkeepalive.cpp b/lib/cpp/client/eventkeepalive.cpp
-index 927056e..8ff8bc4 100644
---- a/lib/cpp/client/eventkeepalive.cpp
-+++ b/lib/cpp/client/eventkeepalive.cpp
-@@ -960,7 +960,6 @@ void *EventConsumerKeepAliveThread::run_undetached(TANGO_UNUSED(void *arg))
- 												DeviceAttribute *da = NULL;
- 												DevErrorList err;
- 												err.length(0);
--												string domain_name = epos->second.device->dev_name() + "/" + epos->second.attr_name;
- 
- 												bool old_transp = epos->second.device->get_transparency_reconnection();
- 												epos->second.device->set_transparency_reconnection(true);
-diff --git a/lib/cpp/client/zmqeventconsumer.cpp b/lib/cpp/client/zmqeventconsumer.cpp
-index 8900300..b3ddbb0 100644
---- a/lib/cpp/client/zmqeventconsumer.cpp
-+++ b/lib/cpp/client/zmqeventconsumer.cpp
-@@ -257,47 +257,6 @@ void *ZmqEventConsumer::run_undetached(TANGO_UNUSED(void *arg))
-         }
- 
- //
--// Something received by the control socket?
--//
--
--        if (items[0].revents & ZMQ_POLLIN)
--        {
--//cout << "For the control socket" << endl;
--            control_sock->recv(&received_ctrl);
--
--            string ret_str;
--            bool ret = false;
--
--            try
--            {
--                ret = process_ctrl(received_ctrl,items,nb_poll_item);
--                ret_str = "OK";
--            }
--            catch (zmq::error_t &e)
--            {
--                ret_str = e.what();
--            }
--            catch (Tango::DevFailed &e)
--            {
--                ret_str = e.errors[0].desc;
--            }
--
--            zmq::message_t reply(ret_str.size());
--            ::memcpy((void *)reply.data(),ret_str.data(),ret_str.size());
--            control_sock->send(reply);
--
--            if (ret == true)
--            {
--                delete heartbeat_sub_sock;
--                delete control_sock;
--                delete [] items;
--
--                break;
--            }
--            items[0].revents = 0;
--        }
--
--//
- // Something received by the event socket (TCP transport)?
- //
- 
-@@ -349,6 +308,47 @@ void *ZmqEventConsumer::run_undetached(TANGO_UNUSED(void *arg))
-         }
- 
- //
-+// Something received by the control socket?
-+//
-+
-+        if (items[0].revents & ZMQ_POLLIN)
-+        {
-+//cout << "For the control socket" << endl;
-+            control_sock->recv(&received_ctrl);
-+
-+            string ret_str;
-+            bool ret = false;
-+
-+            try
-+            {
-+                ret = process_ctrl(received_ctrl,items,nb_poll_item);
-+                ret_str = "OK";
-+            }
-+            catch (zmq::error_t &e)
-+            {
-+                ret_str = e.what();
-+            }
-+            catch (Tango::DevFailed &e)
-+            {
-+                ret_str = e.errors[0].desc;
-+            }
-+
-+            zmq::message_t reply(ret_str.size());
-+            ::memcpy((void *)reply.data(),ret_str.data(),ret_str.size());
-+            control_sock->send(reply);
-+
-+            if (ret == true)
-+            {
-+                delete heartbeat_sub_sock;
-+                delete control_sock;
-+                delete [] items;
-+
-+                break;
-+            }
-+            items[0].revents = 0;
-+        }
-+
-+//
- // Something received by the event socket (mcast transport)?
- // What is stored in the zmq::pollitem_t structure is the real C
- // zmq socket, not the C++ zmq::socket_t class instance
-@@ -2172,12 +2172,6 @@ void ZmqEventConsumer::push_zmq_event(string &ev_name,unsigned char endian,zmq::
-                         EventQueue *ev_queue;
-                         ev_queue = esspos->ev_queue;
- 
--                        if (cb_ctr == cb_nb)
--                        {
--                            map_lock = false;
--                            map_modification_lock.readerOut();
--                        }
--
-                         if ((ev_attr_conf == false) && (ev_attr_ready == false))
-                         {
-                             EventData *event_data;
-@@ -2348,21 +2342,11 @@ void ZmqEventConsumer::push_zmq_event(string &ev_name,unsigned char endian,zmq::
-                             }
-                         }
-                     }
--                    else // id < 0
--                    {
--                        if (cb_ctr == cb_nb)
--                        {
--                            map_lock = false;
--                            map_modification_lock.readerOut();
--                        }
--
--                        if ((ev_attr_conf == false) && (ev_attr_ready == false))
--                            delete dev_attr;
--                        else if (ev_attr_ready == false)
--                            delete attr_info_ex;
--                    }
-                 } // End of for
- 
-+				map_lock = false;
-+				map_modification_lock.readerOut();
-+
-                 delete missed_event_data;
-                 delete missed_conf_event_data;
-                 delete missed_ready_event_data;
-@@ -2706,6 +2690,8 @@ DelayEvent::DelayEvent(EventConsumer *ec):released(false),eve_con(NULL)
-             buffer[length] = ZMQ_DELAY_EVENT;
-             length++;
- 
-+			eve_con->subscription_mutex.lock();
-+
- //
- // Send command to main ZMQ thread
- //
-@@ -2718,6 +2704,8 @@ DelayEvent::DelayEvent(EventConsumer *ec):released(false),eve_con(NULL)
-         }
-         catch (zmq::error_t &e)
-         {
-+			eve_con->subscription_mutex.unlock();
-+
-             TangoSys_OMemStream o;
- 
-             o << "Failed to delay event!\n";
-@@ -2735,6 +2723,8 @@ DelayEvent::DelayEvent(EventConsumer *ec):released(false),eve_con(NULL)
- 
-         if (reply.size() != 2)
-         {
-+			eve_con->subscription_mutex.unlock();
-+
-             char err_mess[512];
-             ::memcpy(err_mess,reply.data(),reply.size());
-             err_mess[reply.size()] = '\0';
-@@ -2791,9 +2781,12 @@ void DelayEvent::release()
- 
-             sender.recv(&reply);
-             released = true;
-+			eve_con->subscription_mutex.unlock();
-         }
-         catch (zmq::error_t &e)
-         {
-+			eve_con->subscription_mutex.unlock();
-+
-             TangoSys_OMemStream o;
- 
-             o << "Failed to delay event!\n";
diff --git a/debian/patches/0007-upstream-attempt-to-fix-the-powerpc-FTBFS.patch b/debian/patches/0007-upstream-attempt-to-fix-the-powerpc-FTBFS.patch
deleted file mode 100644
index ddb25d9..0000000
--- a/debian/patches/0007-upstream-attempt-to-fix-the-powerpc-FTBFS.patch
+++ /dev/null
@@ -1,259 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Tue, 28 May 2013 20:15:57 +0200
-Subject: upstream attempt to fix the powerpc FTBFS
-
----
- lib/cpp/server/device.cpp        |    2 +-
- lib/cpp/server/device.h          |    2 +-
- lib/cpp/server/deviceclass.cpp   |    2 +-
- lib/cpp/server/deviceclass.h     |    2 +-
- lib/cpp/server/dserversignal.cpp |   43 ++++++++++----------------------------
- lib/cpp/server/utils.cpp         |    4 ----
- 6 files changed, 15 insertions(+), 40 deletions(-)
-
-diff --git a/lib/cpp/server/device.cpp b/lib/cpp/server/device.cpp
-index b62085d..ab57e32 100644
---- a/lib/cpp/server/device.cpp
-+++ b/lib/cpp/server/device.cpp
-@@ -667,7 +667,7 @@ PortableServer::POA_ptr DeviceImpl::_default_POA()
- //
- //--------------------------------------------------------------------------
- 
--#if (defined __linux)
-+#ifndef  _TG_WINDOWS_
- void DeviceImpl::register_signal(long signo,bool hand)
- {
- 	cout4 << "DeviceImpl::register_signal() arrived for signal " << signo << endl;
-diff --git a/lib/cpp/server/device.h b/lib/cpp/server/device.h
-index 38829a7..9faa36c 100644
---- a/lib/cpp/server/device.h
-+++ b/lib/cpp/server/device.h
-@@ -3264,7 +3264,7 @@ public:
- /**@name Signal related methods
-  * These methods allow a signal management at device level */
- //@{
--#if (defined __linux)
-+#ifndef _TG_WINDOWS_
- /**
-  * Register a signal to be executed in a signal handler.
-  *
-diff --git a/lib/cpp/server/deviceclass.cpp b/lib/cpp/server/deviceclass.cpp
-index bf03fd1..138b36d 100644
---- a/lib/cpp/server/deviceclass.cpp
-+++ b/lib/cpp/server/deviceclass.cpp
-@@ -820,7 +820,7 @@ void DeviceClass::delete_dev(long idx,Tango::Util *tg,PortableServer::POA_ptr r_
- //
- //--------------------------------------------------------------------------
- 
--#if !(defined __linux)
-+#if defined _TG_WINDOWS_
- void DeviceClass::register_signal(long signo)
- {
- 	cout4 << "DeviceClass::register_signal() arrived for signal " << signo << endl;
-diff --git a/lib/cpp/server/deviceclass.h b/lib/cpp/server/deviceclass.h
-index 5f80858..4604478 100644
---- a/lib/cpp/server/deviceclass.h
-+++ b/lib/cpp/server/deviceclass.h
-@@ -256,7 +256,7 @@ public:
- /**@name Signal related methods
-  * These methods allow a signal management at device level */
- //@{
--#if !(defined __linux)
-+#if defined _TG_WINDOWS_
- /**
-  * Register a signal.
-  *
-diff --git a/lib/cpp/server/dserversignal.cpp b/lib/cpp/server/dserversignal.cpp
-index 48614a5..8c9a67a 100644
---- a/lib/cpp/server/dserversignal.cpp
-+++ b/lib/cpp/server/dserversignal.cpp
-@@ -217,10 +217,8 @@ DServerSignal::DServerSignal():TangoMonitor("signal")
- 	sigdelset(&sigs_to_block,SIGSTOP);
- 
- 	sigdelset(&sigs_to_block,SIGTSTP);
--#if (defined __linux)
- 	sigdelset(&sigs_to_block,SIGUSR1);
- 	sigdelset(&sigs_to_block,SIGUSR2);
--#endif
- 	sigprocmask(SIG_BLOCK,&sigs_to_block,NULL);
- #else /* _TG_WINDOWS_ */
- 	win_ev = CreateEvent(NULL,FALSE,FALSE,NULL);
-@@ -254,7 +252,7 @@ DServerSignal::DServerSignal():TangoMonitor("signal")
- //
- //-----------------------------------------------------------------------------
- 
--#if !(defined __linux)
-+#if defined _TG_WINDOWS_
- void DServerSignal::register_class_signal(long signo,DeviceClass *cl_ptr)
- #else
- void DServerSignal::register_class_signal(long signo,bool handler,DeviceClass *cl_ptr)
-@@ -283,7 +281,7 @@ void DServerSignal::register_class_signal(long signo,bool handler,DeviceClass *c
- 				        (const char *)"DServerSignal::register_class_signal");
- 	}
- 
--#if (defined __linux)
-+#ifndef _TG_WINDOWS_
- 	if ((auto_signal(signo) == true) && (handler == true))
- 	{
- 		TangoSys_OMemStream o;
-@@ -303,8 +301,8 @@ void DServerSignal::register_class_signal(long signo,bool handler,DeviceClass *c
- 		if ((reg_sig[signo].registered_devices.empty() == true) &&
- 		    (reg_sig[signo].registered_classes.empty() == true))
- 		{
--#if !(defined __linux)
--	    		register_handler(signo);
-+#ifdef _TG_WINDOWS_
-+			register_handler(signo);
- #else
- 			register_handler(signo,handler);
- #endif
-@@ -321,7 +319,7 @@ void DServerSignal::register_class_signal(long signo,bool handler,DeviceClass *c
- 	if (f == reg_sig[signo].registered_classes.end())
- 	{
- 		reg_sig[signo].registered_classes.push_back(cl_ptr);
--#if (defined __linux)
-+#ifndef _TG_WINDOWS
- 		reg_sig[signo].own_handler = handler;
- #endif
- 	}
-@@ -364,7 +362,7 @@ vector<DeviceClass *>::iterator DServerSignal::find_class(long signo,DeviceClass
- //
- //-----------------------------------------------------------------------------
- 
--#if !(defined __linux)
-+#ifdef _TG_WINDOWS_
- void DServerSignal::register_dev_signal(long signo,DeviceImpl *dev_ptr)
- #else
- void DServerSignal::register_dev_signal(long signo,bool handler,DeviceImpl *dev_ptr)
-@@ -393,7 +391,7 @@ void DServerSignal::register_dev_signal(long signo,bool handler,DeviceImpl *dev_
- 				      (const char *)"DServerSignal::register_dev_signal");
- 	}
- 
--#if (defined __linux)
-+#ifndef _TG_WINDOWS_
- 	if ((auto_signal(signo) == true) && (handler == true))
- 	{
- 		TangoSys_OMemStream o;
-@@ -413,7 +411,7 @@ void DServerSignal::register_dev_signal(long signo,bool handler,DeviceImpl *dev_
- 		if ((reg_sig[signo].registered_devices.empty() == true) &&
- 		    (reg_sig[signo].registered_classes.empty() == true))
- 		{
--#if !(defined __linux)
-+#ifdef  _TG_WINDOWS_
-             register_handler(signo);
- #else
- 			register_handler(signo,handler);
-@@ -432,7 +430,7 @@ void DServerSignal::register_dev_signal(long signo,bool handler,DeviceImpl *dev_
- 	if (f == reg_sig[signo].registered_devices.end())
- 	{
- 		reg_sig[signo].registered_devices.push_back(dev_ptr);
--#if (defined __linux)
-+#ifndef _TG_WINDOWS_
- 		reg_sig[signo].own_handler = handler;
- #endif
- 	}
-@@ -672,7 +670,7 @@ void DServerSignal::unregister_class_signal(DeviceClass *cl_ptr)
- //
- //-----------------------------------------------------------------------------
- 
--#if !(defined __linux)
-+#ifdef _TG_WINDOWS_
- void DServerSignal::register_handler(long signo)
- #else
- void DServerSignal::register_handler(long signo,bool handler)
-@@ -690,7 +688,6 @@ void DServerSignal::register_handler(long signo,bool handler)
- 				      (const char *)"DServerSignal::register_handler");
- 	}
- #else
--	#if (defined __linux)
- 	if (handler == true)
- 	{
- 		sigset_t sigs_to_unblock;
-@@ -723,8 +720,6 @@ void DServerSignal::register_handler(long signo,bool handler)
- 	}
- 	else
- 	{
--	#endif
--	{
- 		omni_mutex_lock sy(*this);
- 
- 		while(sig_to_install == true)
-@@ -736,9 +731,6 @@ void DServerSignal::register_handler(long signo,bool handler)
- 	}
- 
- 	pthread_kill(sig_th->my_thread,SIGINT);
--	#if (defined __linux)
--	}
--	#endif
- #endif
- 
- }
-@@ -769,7 +761,6 @@ void DServerSignal::unregister_handler(long signo)
- 				      (const char *)"DServerSignal::register_handler");
- 	}
- #else
--	#if (defined __linux)
- 	if (reg_sig[signo].own_handler == true)
- 	{
- 		struct sigaction sa;
-@@ -789,8 +780,6 @@ void DServerSignal::unregister_handler(long signo)
- 	}
- 	else
- 	{
--	#endif
--	{
- 		omni_mutex_lock sy(*this);
- 
- 		while(sig_to_remove == true)
-@@ -802,13 +791,10 @@ void DServerSignal::unregister_handler(long signo)
- 	}
- 	pthread_kill(sig_th->my_thread,SIGINT);
- 
--	#if (defined __linux)
--	}
--	#endif
- #endif
- }
- 
--#if (defined __linux)
-+#ifndef _TG_WINDOWS_
- pid_t DServerSignal::get_sig_thread_pid()
- {
- 	omni_mutex_lock syn(*this);
-@@ -834,7 +820,6 @@ pid_t DServerSignal::get_sig_thread_pid()
- //-----------------------------------------------------------------------------
- 
- #ifndef _TG_WINDOWS_
--	#if (defined __linux)
- void DServerSignal::main_sig_handler(int signo)
- {
- 	cout4 << "In main sig_handler !!!!" << endl;
-@@ -867,12 +852,6 @@ void DServerSignal::main_sig_handler(int signo)
- 		}
- 	}
- }
--	#else
--void DServerSignal::main_sig_handler(int signo)
--{
--	cout4 << "In main sig_handler !!!!" << endl;
--}
--	#endif
- #else
- void DServerSignal::main_sig_handler(int signo)
- {
-diff --git a/lib/cpp/server/utils.cpp b/lib/cpp/server/utils.cpp
-index ad5cc81..4b3fd31 100644
---- a/lib/cpp/server/utils.cpp
-+++ b/lib/cpp/server/utils.cpp
-@@ -2316,11 +2316,7 @@ void Util::print_err_message(const char *err_mess,TANGO_UNUSED(Tango::MessBoxTyp
-         }
- #else
-         cerr << err_mess << endl;
--#ifdef __linux
- 	_exit(-1);
--#else
--        exit(-1);
--#endif
- #endif
- }
- 
diff --git a/debian/patches/series b/debian/patches/series
index 891144b..4fd68c5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,7 +1,4 @@
 0001-debian-fix_database_scripts.patch
 0002-debian-my.cnf.in.patch
 0003-debian-notify_daemon.patch
-0004-upstream-fix-p805_1.patch
-0005-fix-forwaded-upstream-add-LIBZMQ_LIBS-to-libtango.patch
-0006-upstream-fix-p805_2.patch
-0007-upstream-attempt-to-fix-the-powerpc-FTBFS.patch
+0004-forwarded-upstream-use-the-autoconf-standard-macro-f.patch

-- 
TANGO distributed control system.



More information about the debian-science-commits mailing list