[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