[SCM] TANGO distributed control system. branch, master, updated. debian/7.2.6+dfsg-2-10-g8863b9b
Picca Frédéric-Emmanuel
picca at synchrotron-soleil.fr
Sat May 14 11:34:29 UTC 2011
The following commit has been merged in the master branch:
commit f12869ba819b13ad81c4fba00d49eb175dbf6c3d
Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
Date: Fri May 13 19:11:50 2011 +0200
* prepare for release
diff --git a/debian/changelog b/debian/changelog
index a0ce2af..b53925c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-tango (7.2.6+dfsg-3) UNRELEASED; urgency=low
+tango (7.2.6+dfsg-3) unstable; urgency=low
* Add debconf translations:
- Swedish, from Martin Bagge, (closes: #623527)
@@ -9,6 +9,10 @@ tango (7.2.6+dfsg-3) UNRELEASED; urgency=low
- Japanese, from Hideki Yamane (closes: #626378)
* Update debconf translation:
- French, from Christian Perrier, (closes: #623887)
+ * debian/patches
+ - 0004-upstream-fix-bug3285674.patch (new)
+ - 0005-upstream-fix-bug3213730.patch (new)
+ - 0006-feature-forwarded-upstream-pkg-config-small-fixes.patch (new)
-- Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr> Sun, 24 Apr 2011 09:57:31 +0200
diff --git a/debian/patches/0004-upstream-fix-bug3285674.patch b/debian/patches/0004-upstream-fix-bug3285674.patch
new file mode 100644
index 0000000..1e261cd
--- /dev/null
+++ b/debian/patches/0004-upstream-fix-bug3285674.patch
@@ -0,0 +1,236 @@
+From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at synchrotron-soleil.fr>
+Date: Fri, 13 May 2011 19:05:00 +0200
+Subject: upstream-fix-bug3285674
+
+---
+ lib/cpp/server/tango_config.h | 14 +++++
+ lib/cpp/server/w_attribute.cpp | 122 +++++++++++++++++++++++++++++++--------
+ 2 files changed, 111 insertions(+), 25 deletions(-)
+
+diff --git a/lib/cpp/server/tango_config.h b/lib/cpp/server/tango_config.h
+index 91fc26c..5a51dbf 100644
+--- a/lib/cpp/server/tango_config.h
++++ b/lib/cpp/server/tango_config.h
+@@ -356,6 +356,20 @@
+ #define TANGO_HAS_CORE_LOGGER
+
+ //
++// Define a macro for unused parameter warning
++//
++
++#ifdef _TG_WINDOWS_
++#define TANGO_UNUSED(var) var
++#else
++ #ifdef __GNUC__
++ #define TANGO_UNUSED(var) var __attribute__ ((unused))
++ #else
++ #define TANGO_UNUSED(var) var
++ #endif
++#endif
++
++//
+ // Is it a 32 or 64 bits computer
+ //
+
+diff --git a/lib/cpp/server/w_attribute.cpp b/lib/cpp/server/w_attribute.cpp
+index 54f213f..534d335 100644
+--- a/lib/cpp/server/w_attribute.cpp
++++ b/lib/cpp/server/w_attribute.cpp
+@@ -735,11 +735,31 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
+
+ //
+ // Check the incoming value
++// First check for NaN, INF
+ //
+
+- if (check_min_value == true)
++ for (i = 0;i < nb_data;i++)
+ {
+- for (i = 0;i < nb_data;i++)
++#ifdef _TG_WINDOWS_
++ if (_finite((*db_ptr)[i]) == 0)
++#else
++ #ifdef __SUNPRO_CC
++ if (isnan((*db_ptr)[i]) != 0)
++ #else
++ if (isfinite((*db_ptr)[i]) == 0)
++ #endif
++#endif
++ {
++ TangoSys_OMemStream o;
++
++ o << "Set value for attribute " << name;
++ o << " is a NaN or INF value (at least element " << i << ")" << ends;
++ Except::throw_exception((const char *)"API_WAttrOutsideLimit",
++ o.str(),
++ (const char *)"WAttribute::check_written_value()");
++ }
++
++ if (check_min_value == true)
+ {
+ if ((*db_ptr)[i] < min_value.db)
+ {
+@@ -752,10 +772,8 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
+ (const char *)"WAttribute::check_written_value()");
+ }
+ }
+- }
+- if (check_max_value == true)
+- {
+- for (i = 0;i < nb_data;i++)
++
++ if (check_max_value == true)
+ {
+ if ((*db_ptr)[i] > max_value.db)
+ {
+@@ -878,11 +896,31 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
+
+ //
+ // Check the incoming value
++// First check for NaN, INF
+ //
+
+- if (check_min_value == true)
++ for (i = 0;i < nb_data;i++)
+ {
+- for (i = 0;i < nb_data;i++)
++#ifdef _TG_WINDOWS_
++ if (_finite((*fl_ptr)[i]) == 0)
++#else
++ #ifdef __SUNPRO_CC
++ if (isnan((*fl_ptr)[i]) != 0)
++ #else
++ if (isfinite((*fl_ptr)[i]) == 0)
++ #endif
++#endif
++ {
++ TangoSys_OMemStream o;
++
++ o << "Set value for attribute " << name;
++ o << " is a NaN or INF value (at least element " << i << ")" << ends;
++ Except::throw_exception((const char *)"API_WAttrOutsideLimit",
++ o.str(),
++ (const char *)"WAttribute::check_written_value()");
++ }
++
++ if (check_min_value == true)
+ {
+ if ((*fl_ptr)[i] < min_value.fl)
+ {
+@@ -895,10 +933,8 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
+ (const char *)"WAttribute::check_written_value()");
+ }
+ }
+- }
+- if (check_max_value == true)
+- {
+- for (i = 0;i < nb_data;i++)
++
++ if (check_max_value == true)
+ {
+ if ((*fl_ptr)[i] > max_value.fl)
+ {
+@@ -1473,11 +1509,31 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
+
+ //
+ // Check the incoming value
++// First check for NaN, INF
+ //
+
+- if (check_min_value == true)
++ for (i = 0;i < nb_data;i++)
+ {
+- for (i = 0;i < nb_data;i++)
++#ifdef _TG_WINDOWS_
++ if (_finite(db_seq[i]) == 0)
++#else
++ #ifdef __SUNPRO_CC
++ if (isnan(db_seq[i]) != 0)
++ #else
++ if (isfinite(db_seq[i]) == 0)
++ #endif
++#endif
++ {
++ TangoSys_OMemStream o;
++
++ o << "Set value for attribute " << name;
++ o << " is a NaN or INF value (at least element " << i << ")" << ends;
++ Except::throw_exception((const char *)"API_WAttrOutsideLimit",
++ o.str(),
++ (const char *)"WAttribute::check_written_value()");
++ }
++
++ if (check_min_value == true)
+ {
+ if (db_seq[i] < min_value.db)
+ {
+@@ -1490,10 +1546,8 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
+ (const char *)"WAttribute::check_written_value()");
+ }
+ }
+- }
+- if (check_max_value == true)
+- {
+- for (i = 0;i < nb_data;i++)
++
++ if (check_max_value == true)
+ {
+ if (db_seq[i] > max_value.db)
+ {
+@@ -1618,11 +1672,31 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
+
+ //
+ // Check the incoming value
++// First check for NaN, INF
+ //
+
+- if (check_min_value == true)
++ for (i = 0;i < nb_data;i++)
+ {
+- for (i = 0;i < nb_data;i++)
++#ifdef _TG_WINDOWS_
++ if (_finite(fl_seq[i]) == 0)
++#else
++ #ifdef __SUNPRO_CC
++ if (isnan(fl_seq[i]) != 0)
++ #else
++ if (isfinite(fl_seq[i]) == 0)
++ #endif
++#endif
++ {
++ TangoSys_OMemStream o;
++
++ o << "Set value for attribute " << name;
++ o << " is a NaN or INF value (at least element " << i << ")" << ends;
++ Except::throw_exception((const char *)"API_WAttrOutsideLimit",
++ o.str(),
++ (const char *)"WAttribute::check_written_value()");
++ }
++
++ if (check_min_value == true)
+ {
+ if (fl_seq[i] < min_value.fl)
+ {
+@@ -1635,10 +1709,8 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
+ (const char *)"WAttribute::check_written_value()");
+ }
+ }
+- }
+- if (check_max_value == true)
+- {
+- for (i = 0;i < nb_data;i++)
++
++ if (check_max_value == true)
+ {
+ if (fl_seq[i] > max_value.fl)
+ {
+@@ -2845,7 +2917,7 @@ void WAttribute::set_write_value(vector<Tango::DevState> &val, long x, long y)
+ set_user_set_write_value(true);
+ }
+
+-void WAttribute::set_write_value(Tango::DevEncoded *, long x,long y)
++void WAttribute::set_write_value(Tango::DevEncoded *, TANGO_UNUSED(long x),TANGO_UNUSED(long y))
+ {
+
+ //
+--
diff --git a/debian/patches/0005-upstream-fix-bug3213730.patch b/debian/patches/0005-upstream-fix-bug3213730.patch
new file mode 100644
index 0000000..7e3f041
--- /dev/null
+++ b/debian/patches/0005-upstream-fix-bug3213730.patch
@@ -0,0 +1,688 @@
+From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at synchrotron-soleil.fr>
+Date: Fri, 13 May 2011 12:28:01 +0200
+Subject: upstream-fix-bug3213730
+
+---
+ lib/cpp/client/dbapi_base.cpp | 19 +++-
+ lib/cpp/server/attribute.cpp | 162 +---------------------------
+ lib/cpp/server/event.cpp | 156 +--------------------------
+ lib/cpp/server/eventsupplier.cpp | 220 +------------------------------------
+ 4 files changed, 34 insertions(+), 523 deletions(-)
+
+diff --git a/lib/cpp/client/dbapi_base.cpp b/lib/cpp/client/dbapi_base.cpp
+index 58de924..3e3e6a2 100644
+--- a/lib/cpp/client/dbapi_base.cpp
++++ b/lib/cpp/client/dbapi_base.cpp
+@@ -227,7 +227,7 @@ Database::Database(ORB *orb_in) : Connection(orb_in),access_proxy(NULL),access_c
+
+ get_server_release();
+
+- dev_name();
++ dev_name();
+ }
+
+ #ifdef _TG_WINDOWS_
+@@ -4301,8 +4301,21 @@ bool Database::is_command_allowed(string &devname,string &cmd)
+
+ if (devname == db_device_name)
+ {
+- string db_class("Database");
+- ret = access_proxy->is_command_allowed(db_class,cmd);
++
++//
++// In case of Database object, the first command uses the default access right (READ)
++// Therefore, this is_command_allowed method is called and the access are checked by the
++// check_access_control() call upper in this method. If the access is WRITE, force
++// true for the retrun value of this method
++//
++
++ if (access == ACCESS_READ)
++ {
++ string db_class("Database");
++ ret = access_proxy->is_command_allowed(db_class,cmd);
++ }
++ else
++ ret = true;
+ }
+ else
+ {
+diff --git a/lib/cpp/server/attribute.cpp b/lib/cpp/server/attribute.cpp
+index b5bea32..0953a87 100644
+--- a/lib/cpp/server/attribute.cpp
++++ b/lib/cpp/server/attribute.cpp
+@@ -36,155 +36,6 @@ static const char *RcsId = "$Id: attribute.cpp 15556 2011-02-11 08:25:58Z taurel
+ //
+ // $Revision: 15556 $
+ //
+-// $Log$
+-// Revision 3.88 2011/01/10 14:39:27 taurel
+-// - Some compilation errors while compiling Tango 7.2.3
+-//
+-// Revision 3.87 2010/12/08 10:13:08 taurel
+-// - Commit after a merge with the bugfixes branch
+-//
+-// Revision 3.86.2.1 2010/11/21 08:41:27 taurel
+-// - Fix SourceForge bug nb 3110842
+-// (wrong delete in state for spectrm att with alarm defined when
+-// quality factor set to ATTR_INVALID)
+-//
+-// Revision 3.86 2010/11/02 14:06:54 taurel
+-// - Replace dynamic_cast with static_cast in attribute.cpp.
+-// - Release number is now 7.2.1
+-//
+-// Revision 3.85 2010/10/22 13:20:14 taurel
+-// - First bug in Tango 7.2 ! Crash when reading R/W scalar string attribute
+-// without requiring Tango to free memory
+-//
+-// Revision 3.84 2010/09/17 08:22:05 taurel
+-// - Fix memory leak in cse of scalar attribute R/W for string
+-//
+-// Revision 3.83 2010/09/09 13:44:46 taurel
+-// - Add year 2010 in Copyright notice
+-//
+-// Revision 3.82 2010/07/16 10:51:53 taurel
+-// - Now it's possible to fill the polling buffer externally for R/W attribute
+-// specifying the attribute written part
+-//
+-// Revision 3.81 2010/06/21 14:01:13 taurel
+-// - Yet another merge with the Release_7_1_1-bugfixes branch
+-//
+-// Revision 3.78.2.1 2010/02/23 15:56:51 taurel
+-// - Fix bug 2954995 (attribute quality INVALID)
+-//
+-// Revision 3.78 2009/10/27 08:22:27 taurel
+-// - Attribute default value for periodic event period is back to 1 sec
+-//
+-// Revision 3.77 2009/10/23 14:36:27 taurel
+-// - Tango 7.1.1
+-// - Fix bugs 2880372 and 2881841
+-// - Now support event in case of Tango system with multi db server
+-// - The polling threads start with polling inactive
+-//
+-// Revision 3.76 2009/09/18 09:18:05 taurel
+-// - End of attribute serialization implementation?
+-//
+-// Revision 3.75 2009/09/17 08:28:05 taurel
+-// - Add a mutual exclusion to protect attribute buffer
+-//
+-// Revision 3.74 2009/09/16 12:24:45 taurel
+-// - Fix bug in alarm checking in case of scalar attribute read due to a
+-// state attribute request in a read_attributes() call
+-//
+-// Revision 3.73 2009/08/27 07:23:45 taurel
+-// - Commit after another merge with Release_7_0_2-bugfixes branch
+-//
+-// Revision 3.72.2.4 2009/08/25 14:02:00 taurel
+-// - Clarify an error message
+-//
+-// Revision 3.72.2.3 2009/07/17 08:45:58 taurel
+-// - Forgot to copy the previous bug fix to all push_xxx_event() methods
+-//
+-// Revision 3.72.2.2 2009/07/17 08:27:36 taurel
+-// - Fix bug (valgring complains about it) in push_xxx_event() methods
+-// for the status attribute
+-//
+-// Revision 3.72.2.1 2009/06/22 06:39:56 taurel
+-// - Fix bug when pushing event with attribute quality factor set to INVALID
+-//
+-// Revision 3.72 2009/04/30 15:09:55 taurel
+-// - Some code managing only IDL 3 was still there !
+-//
+-// Revision 3.71 2009/03/30 15:03:44 taurel
+-// - Fix last bugs before Tango 7 ??
+-//
+-// Revision 3.70 2009/03/19 17:50:21 jlpons
+-// Added management of DevEncoded format
+-//
+-// Revision 3.69 2009/03/18 12:18:40 taurel
+-// - Fix warnings reported when compiled with the option -Wall
+-//
+-// Revision 3.68 2009/03/13 09:33:29 taurel
+-// - Small changes to fix Windows VC8 warnings in Warning level 3
+-//
+-// Revision 3.67 2009/02/04 10:23:47 taurel
+-// - Fix double free when firing a change event for an attribute with
+-// an INVALID quality factor (set by set_value_date_quality)
+-//
+-// Revision 3.66 2009/01/29 16:23:49 taurel
+-// - Commit after merge with branch Release_6_1_1-bugfixes
+-//
+-// Revision 3.65 2009/01/21 12:49:04 taurel
+-// - Change CopyRights for 2009
+-//
+-// Revision 3.64 2009/01/15 13:57:10 taurel
+-// - Fix bugs found by Jens
+-//
+-// Revision 3.63 2009/01/06 09:28:50 taurel
+-// - Add compatibility between a server IDL V4 and clients IDL V3
+-//
+-// Revision 3.62 2008/12/17 09:50:59 taurel
+-// - First implementation of attributes sent on the wire using IDL Union
+-// instead of IDL Any
+-//
+-// Revision 3.61 2008/10/06 15:00:36 taurel
+-// - Changed the licensing info from GPL to LGPL
+-//
+-// Revision 3.60 2008/10/03 06:51:36 taurel
+-// - Add some licensing info in each files
+-//
+-// Revision 3.59 2008/09/23 14:59:31 taurel
+-// - Commit after the end of DevEncoded data type implementation
+-// - The new test suite is also now running fine
+-//
+-// Revision 3.58 2008/07/03 12:40:05 taurel
+-// - Clean memory in case of String in the set_value() method when the
+-// release flag is set to true
+-//
+-// Revision 3.57 2008/07/03 11:29:27 taurel
+-// - Clean-up memory allocation in set_value() methods
+-// - Continue Device_4 implementation in fire_xxx event methods
+-//
+-// Revision 3.56 2008/07/01 07:38:39 taurel
+-// - Some more code for a proper implementation of the DevEncoded data type with the new IDL release 4
+-//
+-// Revision 3.55 2008/06/14 11:29:15 taurel
+-// - DevEncoded attribute data type implementation work going on
+-//
+-// Revision 3.54 2008/06/10 07:52:14 taurel
+-// - Add code for the DevEncoded attribute data type
+-//
+-// Revision 3.53 2008/05/20 12:44:09 taurel
+-// - Commit after merge with release 7 branch
+-// Revision 3.52.2.1 2009/01/29 15:17:01 taurel
+-// - Add some bug fixes for server used with the -f option (database as
+-// file)
+-//
+-// Revision 3.52 2008/03/26 16:52:59 taurel
+-// - Remove a buggy test when setting the attribute config (linked to RDS delta_t
+-// and delta_val)
+-//
+-// Revision 3.51 2008/03/25 15:48:44 taurel
+-// - Fix some warnings for gcc 4.2 (Thank's to F Picca from Soleil)
+-//
+-// Revision 3.50 2008/03/25 15:34:25 taurel
+-// - Add 2 Attribute::set_properties() methods
+-//
+ //-============================================================================
+
+ #if HAVE_CONFIG_H
+@@ -370,7 +221,7 @@ void Attribute::init_event_prop(vector<AttrProperty> &prop_list)
+
+ TangoSys_MemStream str;
+ double rel_change_min=INT_MAX, rel_change_max=INT_MAX;
+- str << rel_change_str << ends;
++ str << rel_change_str << ends;
+ str >> rel_change_min;
+ str >> rel_change_max;
+
+@@ -401,16 +252,15 @@ void Attribute::init_event_prop(vector<AttrProperty> &prop_list)
+ str << abs_change_str << ends;
+ str >> abs_change_min;
+ str >> abs_change_max;
+- if (abs_change_min != INT_MAX)
++ if (fabs(abs_change_min) > 0 && abs_change_min != INT_MAX)
+ {
+ ext->abs_change[0] = -fabs(abs_change_min);
+ ext->abs_change[1] = fabs(abs_change_min);
+ }
+- if (abs_change_max != INT_MAX)
++ if (abs_change_max > 0 && abs_change_max != INT_MAX)
+ {
+- ext->abs_change[0] = abs_change_min;
+- ext->abs_change[1] = abs_change_max;
+- }
++ ext->abs_change[1] = fabs(abs_change_max);
++ }
+ cout1 << "Attribute::Attribute(): rel_change = " << ext->rel_change[0] << " " << ext->rel_change[1] << endl;
+ str.seekp(0);
+ str.seekg(0);
+@@ -1558,7 +1408,7 @@ void Attribute::get_properties_3(Tango::AttributeConfig_3 &conf)
+ }
+ else
+ {
+- str << fabs(ext->abs_change[0]) << "," << ext->abs_change[1];
++ str << fabs(ext->abs_change[0]) << "," << ext->abs_change[1];
+ MEM_STREAM_2_CORBA(conf.event_prop.ch_event.abs_change,str);
+ }
+ }
+diff --git a/lib/cpp/server/event.cpp b/lib/cpp/server/event.cpp
+index 8a22dae..93058a1 100644
+--- a/lib/cpp/server/event.cpp
++++ b/lib/cpp/server/event.cpp
+@@ -36,154 +36,6 @@ static const char *RcsId = "$Id: event.cpp 15556 2011-02-11 08:25:58Z taurel $";
+ ///
+ /// $Revision: 15556 $
+ ///
+-/// $Log$
+-/// Revision 1.70 2010/10/04 14:56:04 taurel
+-/// - Fix a Solaris natif compiler warning
+-///
+-/// Revision 1.69 2010/09/29 12:04:35 taurel
+-/// - It's now possible to register several callbacks for the same event
+-///
+-/// Revision 1.68 2010/09/09 13:45:22 taurel
+-/// - Add year 2010 in Copyright notice
+-///
+-/// Revision 1.67 2010/09/07 15:33:12 taurel
+-/// - Add a print to be used in case of
+-///
+-/// Revision 1.66 2010/08/25 11:39:47 taurel
+-/// - Just some beautifulling!!
+-///
+-/// Revision 1.65 2010/06/21 14:01:15 taurel
+-/// - Yet another merge with the Release_7_1_1-bugfixes branch
+-///
+-/// Revision 1.64 2010/06/21 12:38:23 taurel
+-/// - Implement a much faster server shutdown sequence
+-/// Revision 1.60.2.3 2010/06/13 11:39:30 taurel
+-/// - Fix incoherency in error received by the user callback in case of
+-/// CHANGE event. The "err" flag was not set in the first event sent to the
+-/// user callback (during subscription).
+-/// This is bug 3015443
+-///
+-/// Revision 1.63 2010/05/26 09:15:35 taurel
+-/// - Another commit after merge with the bug fixes branch
+-///
+-/// Revision 1.62 2010/04/27 07:36:42 taurel
+-/// - Merge with the bugfixes branch
+-/// Revision 1.60.2.2 2010/05/18 08:27:22 taurel
+-/// - Events from device in a DS started with a file as database are now
+-/// back into operation
+-///
+-/// Revision 1.60.2.1 2010/04/27 07:10:09 taurel
+-/// - Fix bug in case of event sent by the notifd while another thread is
+-/// executing the unregister_structured_push_supplier() call in the
+-/// unsubscribe_event() API call. This generated a dead lock on the monitor
+-/// used to protect event maps.
+-///
+-/// Revision 1.60 2009/11/02 08:35:47 taurel
+-/// - Fix warnings reported when compiling using the option -Wall
+-///
+-/// Revision 1.59 2009/10/27 08:23:47 taurel
+-/// - Fully Qualified attribute name passed to the event callback
+-///
+-/// Revision 1.58 2009/10/23 14:36:27 taurel
+-/// - Tango 7.1.1
+-/// - Fix bugs 2880372 and 2881841
+-/// - Now support event in case of Tango system with multi db server
+-/// - The polling threads start with polling inactive
+-///
+-/// Revision 1.57 2009/10/01 15:13:07 taurel
+-/// - Fix a bug in case of unsubscribe on event from channel on which several
+-/// events were registered.(Not proper clean up of the device_channel_map map)
+-///
+-/// Revision 1.56 2009/09/30 06:43:18 taurel
+-/// - Improve error detection in case of TANGO_HOST not set and not fully
+-/// qualified device name
+-///
+-/// Revision 1.55 2009/09/29 15:55:15 taurel
+-/// - Fix bug in case of subscribe_event using fully qualified Tango device
+-/// name while the TANGO_HOST env. variable is not set
+-///
+-/// Revision 1.54 2009/08/27 07:23:45 taurel
+-/// - Commit after another merge with Release_7_0_2-bugfixes branch
+-///
+-/// Revision 1.53 2009/06/17 08:52:08 taurel
+-/// - Commit after a merge with branch Release_7_0_2-bugfixes
+-/// Revision 1.52.2.9 2009/08/20 07:10:49 taurel
+-/// - It is now possible to unsubscribe in the event callback!
+-///
+-/// Revision 1.52.2.8 2009/08/17 14:13:33 taurel
+-/// - Fix SourceForge bug 2821898 for the EventData class.
+-/// Thank's to Tiago's patch
+-///
+-/// Revision 1.52.2.7 2009/07/16 06:34:49 taurel
+-/// - Fix bug in AttrConfEventData copy ctor and assignement operator
+-///
+-/// Revision 1.52.2.6 2009/07/15 08:14:34 taurel
+-/// - Don't forget to set the lock exit installed flag when the EventConsumer object is created !!
+-///
+-/// Revision 1.52.2.5 2009/06/25 11:57:55 taurel
+-/// - Fix bug in case of multiple subscribe on the same event just before
+-/// the exception is thrown. A bad lock management
+-///
+-/// Revision 1.52.2.4 2009/06/22 14:48:52 taurel
+-/// - Fix bug for state change coming from a device 4 server
+-///
+-/// Revision 1.52.2.3 2009/06/17 07:35:44 taurel
+-/// - Add support for event coming from server with the prefix to build
+-/// the fqdn contains database host with its full qualified domain
+-/// name
+-///
+-/// Revision 1.52.2.2 2009/06/15 10:57:09 taurel
+-/// - Fix a bug in the bug fix !
+-///
+-/// Revision 1.52.2.1 2009/06/12 08:28:51 taurel
+-/// - Fix bug when using events in multi Tango host environment.
+-/// The TANGO_HOST is now transferred within the even tin the fixed
+-/// header event_type field.
+-/// The DS admin device EventSubscriptionChange command now returns with which Tango lib it is runnig.
+-/// This allows the client to know if the tango host info will be transmitted within the event
+-///
+-/// Revision 1.52 2009/03/30 15:03:44 taurel
+-/// - Fix last bugs before Tango 7 ??
+-///
+-/// Revision 1.51 2009/03/20 11:53:28 taurel
+-/// - Fix some compiler warnings
+-///
+-/// Revision 1.50 2009/03/18 12:18:43 taurel
+-/// - Fix warnings reported when compiled with the option -Wall
+-///
+-/// Revision 1.49 2009/03/13 09:33:29 taurel
+-/// - Small changes to fix Windows VC8 warnings in Warning level 3
+-///
+-/// Revision 1.48 2009/01/29 15:25:41 taurel
+-/// - First implementation of the Data Ready event
+-///
+-/// Revision 1.47 2009/01/21 12:49:03 taurel
+-/// - Change CopyRights for 2009
+-///
+-/// Revision 1.46 2008/12/17 09:50:59 taurel
+-/// - First implementation of attributes sent on the wire using IDL Union
+-/// instead of IDL Any
+-///
+-/// Revision 1.45 2008/10/06 15:01:09 taurel
+-/// - Changed the licensing info from GPL to LGPL
+-///
+-/// Revision 1.44 2008/10/03 06:52:31 taurel
+-/// - Add some licensing info in each files
+-///
+-/// Revision 1.43 2008/10/01 12:02:01 jensmeyer
+-/// Changed method name event_queue_is_empty() to is_event_queue_empty()
+-///
+-/// Revision 1.42 2008/09/23 14:59:33 taurel
+-/// - Commit after the end of DevEncoded data type implementation
+-/// - The new test suite is also now running fine
+-///
+-/// Revision 1.41 2008/09/15 13:19:39 jensmeyer
+-/// Deleted some debugging printouts.
+-///
+-/// Revision 1.40 2008/09/15 12:31:09 jensmeyer
+-/// Added an eventqueue reading method to call the usual callback method
+-/// when reading event data from the queue.
+-///
+ ///
+ ////////////////////////////////////////////////////////////////////////////////
+
+@@ -307,7 +159,7 @@ EventConsumer::EventConsumer(ApiUtil *ptr) : omni_thread((void *)ptr)
+
+ //
+ // Build and store the fqdn prefix for devices in the TANGO_HOST
+-// environment variable
++// environment variable (in lower case letters)
+ //
+
+ try
+@@ -325,6 +177,9 @@ EventConsumer::EventConsumer(ApiUtil *ptr) : omni_thread((void *)ptr)
+ env_var_fqdn_prefix.push_back(prefix);
+ }
+ }
++
++ for (size_t loop = 0;loop < env_var_fqdn_prefix.size();++loop)
++ transform(env_var_fqdn_prefix[loop].begin(),env_var_fqdn_prefix[loop].end(),env_var_fqdn_prefix[loop].begin(),::tolower);
+ }
+ catch (Tango::DevFailed)
+ {
+@@ -772,6 +627,7 @@ void EventConsumer::connect_event_channel(string &channel_name,Database *db,bool
+ }
+ else
+ {
++
+ new_event_channel_struct.eventChannel = eventChannel;
+ new_event_channel_struct.structuredProxyPushSupplier = structuredProxyPushSupplier;
+ new_event_channel_struct.last_heartbeat = time(NULL);
+@@ -1473,7 +1329,7 @@ void EventConsumer::push_structured_event(const CosNotification::StructuredEvent
+
+ // only reading from the maps
+ map_modification_lock.readerIn();
+-
++
+ std::map<std::string,EventChannelStruct>::iterator ipos;
+ ipos = channel_map.find(fq_dev_name);
+
+diff --git a/lib/cpp/server/eventsupplier.cpp b/lib/cpp/server/eventsupplier.cpp
+index 604791f..c5aedb2 100644
+--- a/lib/cpp/server/eventsupplier.cpp
++++ b/lib/cpp/server/eventsupplier.cpp
+@@ -35,215 +35,6 @@ static const char *RcsId = "$Id: eventsupplier.cpp 15556 2011-02-11 08:25:58Z ta
+ // along with Tango. If not, see <http://www.gnu.org/licenses/>.
+ ///
+ /// $Revision: 15556 $
+-///
+-/// $Log$
+-/// Revision 1.44 2011/01/24 12:33:27 taurel
+-/// - Fix end of bug with periodic and archive event (periodic part)
+-/// Also removed the DELTA on sec numbers for time got for out-of-sync error
+-///
+-/// Revision 1.43 2011/01/18 14:49:44 taurel
+-/// - Typo for windows
+-///
+-/// Revision 1.42 2011/01/18 14:16:46 taurel
+-/// - In case of archive or periodic event and error out_of_sync, get time
+-/// in detect_and_push_archive_event (periodic as well) because the received
+-/// pointer is null
+-///
+-/// Revision 1.41 2011/01/10 13:55:07 taurel
+-/// - For periodic and archive/periodic, take time got before the attribute
+-/// is read to decide if it is time to store data. This time is much
+-/// more stable than time got after the attribute is read. Reading attribute
+-/// on some device takes a long and unstabe time.
+-///
+-/// Revision 1.40 2011/01/10 13:09:02 taurel
+-/// - No retry on command to get data for cache during DS startup
+-/// - Only three reties during DbDevExport
+-/// - Device are deleted by omniORB even if not exported into Tango database
+-///
+-/// Revision 1.39 2010/12/08 10:13:08 taurel
+-/// - Commit after a merge with the bugfixes branch
+-///
+-/// Revision 1.38.2.1 2010/11/25 15:52:52 taurel
+-/// - Fix bug 3118520 (DS freezes on Windows)
+-///
+-/// Revision 1.38 2010/11/03 13:22:29 taurel
+-/// - Add a connect timeout when the server tries to contact the notifd
+-///
+-/// Revision 1.37 2010/09/09 13:46:00 taurel
+-/// - Add year 2010 in Copyright notice
+-///
+-/// Revision 1.36 2010/05/26 09:15:36 taurel
+-/// - Another commit after merge with the bug fixes branch
+-///
+-/// Revision 1.35.2.2 2010/05/21 09:43:39 taurel
+-/// - Re-use the same event channel in case of server restart when a file
+-/// is use as database
+-///
+-/// Revision 1.35.2.1 2010/05/18 08:27:23 taurel
+-/// - Events from device in a DS started with a file as database are now
+-/// back into operation
+-///
+-/// Revision 1.35 2009/10/27 08:25:02 taurel
+-/// - No real changes. Only some code beautifulling
+-///
+-/// Revision 1.34 2009/08/27 07:23:45 taurel
+-/// - Commit after another merge with Release_7_0_2-bugfixes branch
+-///
+-/// Revision 1.33 2009/06/17 08:52:08 taurel
+-/// - Commit after a merge with branch Release_7_0_2-bugfixes
+-/// Revision 1.32.2.2 2009/06/26 06:46:06 taurel
+-/// - No change, simply commit to test the "commit" mailing list
+-///
+-/// Revision 1.32.2.1 2009/06/12 08:28:51 taurel
+-/// - Fix bug when using events in multi Tango host environment.
+-/// The TANGO_HOST is now transferred within the even tin the fixed
+-/// header event_type field.
+-/// The DS admin device EventSubscriptionChange command now returns with which Tango lib it is runnig.
+-/// This allows the client to know if the tango host info will be transmitted within the event
+-///
+-/// Revision 1.32 2009/03/13 09:33:29 taurel
+-/// - Small changes to fix Windows VC8 warnings in Warning level 3
+-///
+-/// Revision 1.31 2009/01/29 16:23:49 taurel
+-/// - Commit after merge with branch Release_6_1_1-bugfixes
+-///
+-/// Revision 1.30 2009/01/29 15:25:41 taurel
+-/// - First implementation of the Data Ready event
+-///
+-/// Revision 1.29 2009/01/21 12:49:03 taurel
+-/// - Change CopyRights for 2009
+-///
+-/// Revision 1.28 2009/01/08 09:52:06 taurel
+-/// - Fix bugs for server implementing only IDL3
+-///
+-/// Revision 1.27 2009/01/06 09:28:50 taurel
+-/// - Add compatibility between a server IDL V4 and clients IDL V3
+-///
+-/// Revision 1.26 2008/12/17 09:50:59 taurel
+-/// - First implementation of attributes sent on the wire using IDL Union
+-/// instead of IDL Any
+-///
+-/// Revision 1.25 2008/10/06 15:01:09 taurel
+-/// - Changed the licensing info from GPL to LGPL
+-///
+-/// Revision 1.24 2008/10/03 06:52:31 taurel
+-/// - Add some licensing info in each files
+-///
+-/// Revision 1.23 2008/09/23 14:59:35 taurel
+-/// - Commit after the end of DevEncoded data type implementation
+-/// - The new test suite is also now running fine
+-///
+-/// Revision 1.22 2008/07/01 07:38:40 taurel
+-/// - Some more code for a proper implementation of the DevEncoded data type with the new IDL release 4
+-/// Revision 1.21.2.2 2009/01/29 15:17:01 taurel
+-/// - Add some bug fixes for server used with the -f option (database as
+-/// file)
+-///
+-/// Revision 1.21.2.1 2008/07/17 12:25:50 taurel
+-/// - Unexport event channel from db only during device server startup sequence
+-/// - Add re-try in case of pb during event channel export to db
+-/// - Clean-up old supplier proxy at DS startup (in case of previous core dump)
+-///
+-/// Revision 1.21 2008/03/11 14:38:25 taurel
+-/// - Apply patches from Frederic Picca about compilation with gcc 4.2
+-///
+-/// Revision 1.20 2008/01/15 12:32:43 taurel
+-/// - Simply remove some print
+-///
+-/// Revision 1.19 2007/12/19 15:42:43 taurel
+-/// - Add some cleanup when quitting applis or device server (notifd objects)
+-///
+-/// Revision 1.18 2007/12/12 10:17:18 taurel
+-/// - Db calls during DS startup has a separate timeout and some retries
+-///
+-/// Revision 1.17 2007/11/08 12:03:44 taurel
+-/// - Start implementing user interceptors
+-/// - Fix bug in poll thread pproperty management when removing polling object
+-/// - Set a database timeout to 6 sec
+-///
+-/// Revision 1.16 2007/10/16 08:23:37 taurel
+-/// - Add management of the TC connection establishment timeout for DB access
+-/// - Add DB server cache in DS used during DS startup sequence
+-/// - Comment out the sleep time during DS startup sequence
+-///
+-/// Revision 1.15 2007/04/20 14:41:33 taurel
+-/// - Ported to Windows 64 bits x64 architecture
+-///
+-/// Revision 1.14 2007/04/16 14:57:42 taurel
+-/// - Added 3 new attributes data types (DevULong, DevULong64 and DevState)
+-/// - Ported to omniORB4.1
+-/// - Increased the MAX_TRANSFER_SIZE to 256 MBytes
+-/// - Added a new filterable field in the archive event
+-///
+-/// Revision 1.13 2007/03/29 07:06:55 taurel
+-/// - Change some data types for 64 bits compatibility
+-///
+-/// Revision 1.12 2007/03/06 08:19:43 taurel
+-/// - Added 64 bits data types for 64 bits computer...
+-///
+-/// Revision 1.11 2007/03/02 09:47:18 jensmeyer
+-/// Added quality change to archive event.
+-/// Changed the forcing of events in the cases of exception or invalid data.
+-/// Now an event is only send once with the same exception and only once
+-/// as long as the data quality stays invalid.
+-///
+-/// Revision 1.10 2007/02/16 10:40:57 taurel
+-/// - Implementing a new types of event on the Attribute configuration
+-///
+-/// Revision 1.9 2006/05/18 14:29:12 jensmeyer
+-/// Changed the handling of the event period for periodic and archiving events.
+-/// The event period is now stored as the configured value and no longer
+-/// multilplied by the factor DELTA_PERIODIC.
+-/// The calculation of the precision to fire periodic events has moved from
+-/// the attribbute to the push methods in the event supplier.
+-///
+-/// For event periods < 5000 ms a precision of 2% was kept, but for
+-/// times < 5000 ms a fixed precision of 100 ms was added.
+-/// This avoids periodic events with a long event period to be fired to early.
+-///
+-/// Revision 1.8 2006/04/13 06:14:05 jensmeyer
+-/// Added mutex variables to protect event related methods for accesses
+-/// from different threads.
+-///
+-/// Revision 1.7 2006/02/17 16:55:21 jensmeyer
+-/// Corrections when porting to VC7 under windows
+-///
+-/// Revision 1.6 2006/01/27 14:27:10 taurel
+-/// - Fix a severe incompatibility problem introduced by all the modifs done for
+-/// PY DS
+-/// - Duplicate some EventSupplier class methods (instead of using template) in order to be able to generate Tango shared library on Suse 9.3
+-///
+-/// Revision 1.5 2005/06/29 08:31:18 taurel
+-/// - Last commit before release 5.2 ?
+-///
+-/// Revision 1.4 2005/03/14 12:01:24 taurel
+-/// - Fix bug in the event system for device server started with the -file option
+-///
+-/// Revision 1.3 2005/03/14 09:49:29 taurel
+-/// - Fix some bugs in filedatabase (Change in the data transferred between client and
+-/// server).
+-/// - Fix bug in event re-connection
+-/// - Add event support even for device server started with the -file command line option
+-///
+-/// Revision 1.2 2005/01/13 08:29:06 taurel
+-/// - Merge trunk with Release_5_0 from brach Release_5_branch
+-///
+-/// Revision 1.1.2.2 2004/10/22 11:25:51 taurel
+-/// Added warning alarm
+-/// Change attribute config. It now includes alarm and event parameters
+-/// Array attribute property now supported
+-/// subscribe_event throws exception for change event if they are not correctly configured
+-/// Change in the polling thread: The event heartbeat has its own work in the work list
+-/// Also add some event_unregister
+-/// Fix order in which classes are destructed
+-/// Fix bug in asynchronous mode (PUSH_CALLBACK). The callback thread ate all the CPU
+-/// Change in the CORBA info call for the device type
+-///
+-/// Revision 1.1.2.1 2004/10/05 13:55:02 maxchiandone
+-/// First upload for filedatabase.
+-///
+-/// Revision 1.1 2004/07/07 07:59:20 taurel
+-/// Added some files
+ ///
+ ///
+ ////////////////////////////////////////////////////////////////////////////////
+@@ -272,10 +63,10 @@ EventSupplier *EventSupplier::_instance = NULL;
+
+
+ /************************************************************************/
+-/* */
+-/* EventSupplier class */
+-/* ------------------- */
+-/* */
++/* */
++/* EventSupplier class */
++/* ------------------- */
++/* */
+ /************************************************************************/
+
+
+@@ -336,7 +127,8 @@ EventSupplier *EventSupplier::create(CORBA::ORB_var _orb,
+ _event_supplier->fqdn_prefix = _event_supplier->fqdn_prefix + host_name + ':';
+ else
+ _event_supplier->fqdn_prefix = _event_supplier->fqdn_prefix + db->get_db_host() + ':' + db->get_db_port() + '/' ;
+-
++ transform(_event_supplier->fqdn_prefix.begin(),_event_supplier->fqdn_prefix.end(),_event_supplier->fqdn_prefix.begin(),::tolower);
++
+ return _event_supplier;
+ }
+
+--
diff --git a/debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch b/debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
new file mode 100644
index 0000000..e5739de
--- /dev/null
+++ b/debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
@@ -0,0 +1,45 @@
+From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at synchrotron-soleil.fr>
+Date: Fri, 13 May 2011 12:34:13 +0200
+Subject: feature-forwarded-upstream-pkg-config-small-fixes
+
+---
+ lib/cpp/log4tango/log4tango.pc.in | 4 ++--
+ lib/cpp/tango.pc.in | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/lib/cpp/log4tango/log4tango.pc.in b/lib/cpp/log4tango/log4tango.pc.in
+index 0e61e8a..c4acacb 100644
+--- a/lib/cpp/log4tango/log4tango.pc.in
++++ b/lib/cpp/log4tango/log4tango.pc.in
+@@ -1,10 +1,10 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+-includedir=@includedir@/tango
++includedir=@includedir@
+
+ Name: log4tango
+ Description: Logging library for the tango constrol system
+ Version: @VERSION@
+ Libs: -L${libdir} -llog4tango
+-Cflags: -I${includedir}
++Cflags: -I${includedir}/tango
+diff --git a/lib/cpp/tango.pc.in b/lib/cpp/tango.pc.in
+index b9bb22f..b4a4a82 100644
+--- a/lib/cpp/tango.pc.in
++++ b/lib/cpp/tango.pc.in
+@@ -1,11 +1,11 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+-includedir=@includedir@/tango
++includedir=@includedir@
+
+ Name: tango
+ Description: The tango constrol system library
+ Requires: omniDynamic4 >= 4.1.2 omniCOS4 log4tango
+ Version: @VERSION@
+ Libs: -L${libdir} -ltango
+-Cflags: -I${includedir}
++Cflags: -I${includedir}/tango
+--
diff --git a/debian/patches/series b/debian/patches/series
index 31d0855..4852fd4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,6 @@
0001-debian-fix_database_scripts.patch
0002-debian-my.cnf.in.patch
0003-debian-notify_daemon.patch
+0004-upstream-fix-bug3285674.patch
+0005-upstream-fix-bug3213730.patch
+0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
--
TANGO distributed control system.
More information about the debian-science-commits
mailing list