[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