[magics] 28/63: refresh patches

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Mar 24 10:41:51 UTC 2017


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository magics.

commit edc635e3163a2a64042f43d23f374ae96db7cd3c
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Fri Jul 8 03:25:07 2016 +0100

    refresh patches
---
 debian/changelog                     |   2 +
 debian/patches/cmake-config.patch    |   6 +-
 debian/patches/compile-fixes.patch   |  20 -
 debian/patches/g++-6.patch           | 100 -----
 debian/patches/numpy-fixes.patch     |  12 +-
 debian/patches/pkgconfig-fix.patch   |  14 +-
 debian/patches/python3.patch         | 748 ++++++++++++++++++++++++++++-------
 debian/patches/reproducibility.patch |  30 +-
 debian/patches/series                |   2 -
 debian/patches/soname-version.patch  |  12 +-
 debian/patches/terralib.patch        |  17 +-
 debian/patches/unique-ptr.patch      | 140 +++----
 12 files changed, 718 insertions(+), 385 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 6eb2904..f59fec4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 magics++ (2.29.2-1) UNRELEASED; urgency=medium
 
   * New upstream release
+   - compile_fixes.patch merged upstream
+   - g++-6.patch merged upstream
   * Fix python3 support: indentation errors in macro.py. Closes: #827850.
   * Loosen the libemos-dev depends, to allow backports
   * Set LC_ALL=C during build to aid reproducibility
diff --git a/debian/patches/cmake-config.patch b/debian/patches/cmake-config.patch
index b505b7c..acfda65 100644
--- a/debian/patches/cmake-config.patch
+++ b/debian/patches/cmake-config.patch
@@ -3,10 +3,10 @@ Description: Ensure /usr/include/magics on include path in Metview
 Last-Updated: 2016-01-09
 Forwarded: not-needed
 
-Index: magics++-2.28.0/cmake/project-config.cmake.in
+Index: magics++-2.29.2/cmake/project-config.cmake.in
 ===================================================================
---- magics++-2.28.0.orig/cmake/project-config.cmake.in
-+++ magics++-2.28.0/cmake/project-config.cmake.in
+--- magics++-2.29.2.orig/cmake/project-config.cmake.in
++++ magics++-2.29.2/cmake/project-config.cmake.in
 @@ -19,7 +19,7 @@
  
  get_filename_component(@PNAME at _CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
diff --git a/debian/patches/compile-fixes.patch b/debian/patches/compile-fixes.patch
deleted file mode 100644
index 0cfb0fe..0000000
--- a/debian/patches/compile-fixes.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: compile fix.
-Forwarded: https://software.ecmwf.int/issues/browse/SUP-1595
-Last-Updated: 2016-03-22
-
-Index: magics++-2.28.0/src/drivers/CairoDriver.cc
-===================================================================
---- magics++-2.28.0.orig/src/drivers/CairoDriver.cc
-+++ magics++-2.28.0/src/drivers/CairoDriver.cc
-@@ -539,8 +539,8 @@ MAGICS_NO_EXPORT void CairoDriver::write
- 
-     // DPI
-     TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
--    TIFFSetField(tif, TIFFTAG_XRESOLUTION, (float) 90.;// resolution_);
--    TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float) 90.;// resolution_);
-+    TIFFSetField(tif, TIFFTAG_XRESOLUTION, (float) 90.);// resolution_);
-+    TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float) 90.);// resolution_);
- 
-     unsigned char *buf;
-     if (TIFFScanlineSize(tif))
diff --git a/debian/patches/g++-6.patch b/debian/patches/g++-6.patch
deleted file mode 100644
index 2e8c8ee..0000000
--- a/debian/patches/g++-6.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-Description: For c++14, need to disambiguate isnan() 
-Author: Alastair McKinstry <mckinstry at debian.org>
-Last-Update: 2016-05-02
-Forwarded: no
-
-Index: magics++-2.28.0/src/decoders/GribRegularInterpretor.cc
-===================================================================
---- magics++-2.28.0.orig/src/decoders/GribRegularInterpretor.cc
-+++ magics++-2.28.0/src/decoders/GribRegularInterpretor.cc
-@@ -2054,14 +2054,14 @@ void GribLambertInterpretor::interpretAs
-                             double val2 = ((lon22 - lon) / (lon22 - lon21))
-                                     * val21
-                                     + ((lon - lon21) / (lon22 - lon21)) * val22;
--                            if (isnan(val1)) {
--                                if (isnan(val2)) {
-+                            if (std::isnan(val1)) {
-+			      if (std::isnan(val2)) {
-                                     val = missing;
-                                 } else
-                                     val = ((lat - lat11) / (lat22 - lat11))
-                                             * val2;
-                             } else {
--                                if (isnan(val2)) {
-+			      if (std::isnan(val2)) {
-                                     val = ((lat22 - lat) / (lat22 - lat11))
-                                             * val1;
-                                 } else {
-@@ -2072,11 +2072,11 @@ void GribLambertInterpretor::interpretAs
-                                 }
-                             }
- 
--                            if (isnan(val) || isinf(val) || isinf(-val)) {
-+                            if (std::isnan(val) || std::isinf(val) || std::isinf(-val)) {
-                                 val = missing;
-                             }
-                         }
--                        if (isnan(val))
-+                        if (std::isnan(val))
-                             val = missing;
-                         if ((**matrix)[index.second + (index.first * im)]
-                                 == missing) {
-Index: magics++-2.28.0/src/decoders/NetcdfOrcaInterpretor.cc
-===================================================================
---- magics++-2.28.0.orig/src/decoders/NetcdfOrcaInterpretor.cc
-+++ magics++-2.28.0/src/decoders/NetcdfOrcaInterpretor.cc
-@@ -207,15 +207,15 @@ bool NetcdfOrcaInterpretor::interpretAsM
- 							double val1 =  	((lon12 - lon )/(lon12-lon11))*val11 + ((lon - lon11)/(lon12-lon11))*val12;
- 
- 							double val2 =  	((lon22 - lon )/(lon22-lon21))*val21 + ((lon - lon21)/(lon22-lon21))*val22;
--							if ( isnan(val1) ) {
--								if ( isnan(val2) ) {
-+							if ( std::isnan(val1) ) {
-+							  if ( std::isnan(val2) ) {
- 									val = missing;
- 								}
- 								else
- 									val = ((lat - lat11)/(lat22-lat11))*val2;
- 							}
- 							else {
--								if ( isnan(val2) ) {
-+							  if ( std::isnan(val2) ) {
- 									val =  	((lat22 - lat )/(lat22-lat11))*val1;
- 								}
- 								else {
-@@ -223,11 +223,11 @@ bool NetcdfOrcaInterpretor::interpretAsM
- 								}
- 							}
- 
--							if (isnan(val) || isinf(val) || isinf(-val) ) {
-+							if (std::isnan(val) || std::isinf(val) || std::isinf(-val) ) {
- 								val = missing;
- 							}
- 						}
--						if (isnan(val) ) val = missing;
-+						if (std::isnan(val) ) val = missing;
- 						if ( (*matrix)[index.second +( index.first*im)] == missing )
- 							(*matrix)[index.second +( index.first*im)] = val;
- 
-@@ -293,7 +293,7 @@ bool NetcdfOrcaInterpretor::interpretAsP
-         
- 		while (lat != latm.end() ) {
-             double value = *val;
--           if (isnan(value) ) 
-+	    if (std::isnan(value) ) 
-                 value = missing;
- 
-             if ( value  != missing) { 
-Index: magics++-2.28.0/src/decoders/NetcdfGeoMatrixInterpretor.cc
-===================================================================
---- magics++-2.28.0.orig/src/decoders/NetcdfGeoMatrixInterpretor.cc
-+++ magics++-2.28.0/src/decoders/NetcdfGeoMatrixInterpretor.cc
-@@ -90,7 +90,7 @@ bool NetcdfGeoMatrixInterpretor::interpr
- 			netcdf.get(field_, data, first, last);
- 			int i = 0;
- 			for (vector<double>::iterator d = data.begin(); d != data.end(); ++d ) {
--				if ( !isnan(*d) ) {
-+			  if ( !std::isnan(*d) ) {
- 					matrix_->push_back(*d);
- 
- 				}
diff --git a/debian/patches/numpy-fixes.patch b/debian/patches/numpy-fixes.patch
index 953444d..1951c7e 100644
--- a/debian/patches/numpy-fixes.patch
+++ b/debian/patches/numpy-fixes.patch
@@ -4,10 +4,10 @@ Description: Update the numpy.i from a copy in numpy.git to add
 Last-Updated: 2016-06-14
 Forwarded: no
 
-Index: magics++-2.28.0/python/Magics/numpy.i
+Index: magics++-2.29.2/python/Magics/numpy.i
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/numpy.i
-+++ magics++-2.28.0/python/Magics/numpy.i
+--- magics++-2.29.2.orig/python/Magics/numpy.i
++++ magics++-2.29.2/python/Magics/numpy.i
 @@ -1,11 +1,46 @@
  /* -*- C -*-  (not really, but good for syntax highlighting) */
 +
@@ -2672,10 +2672,10 @@ Index: magics++-2.28.0/python/Magics/numpy.i
 +#endif
  
  #endif /* SWIGPYTHON */
-Index: magics++-2.28.0/python/Magics/Magics.i.in
+Index: magics++-2.29.2/python/Magics/Magics.i.in
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/Magics.i.in
-+++ magics++-2.28.0/python/Magics/Magics.i.in
+--- magics++-2.29.2.orig/python/Magics/Magics.i.in
++++ magics++-2.29.2/python/Magics/Magics.i.in
 @@ -22,7 +22,7 @@
      int i = 0;
      $1 = (char **) malloc((size+1)*sizeof(char *));
diff --git a/debian/patches/pkgconfig-fix.patch b/debian/patches/pkgconfig-fix.patch
index edf5f55..1c42410 100644
--- a/debian/patches/pkgconfig-fix.patch
+++ b/debian/patches/pkgconfig-fix.patch
@@ -3,10 +3,10 @@ Description: Need args for ecbuild_pkgconfig() to work
 Last-Updated: 2016-01-09
 Forwarded: no
 
-Index: magics++-2.28.0/cmake/ecbuild_pkgconfig.cmake
+Index: magics++-2.29.2/cmake/ecbuild_pkgconfig.cmake
 ===================================================================
---- magics++-2.28.0.orig/cmake/ecbuild_pkgconfig.cmake
-+++ magics++-2.28.0/cmake/ecbuild_pkgconfig.cmake
+--- magics++-2.29.2.orig/cmake/ecbuild_pkgconfig.cmake
++++ magics++-2.29.2/cmake/ecbuild_pkgconfig.cmake
 @@ -12,8 +12,11 @@
  # to CMake variable ${dependencies}
  function( ecbuild_library_dependencies dependencies libraries )
@@ -19,11 +19,11 @@ Index: magics++-2.28.0/cmake/ecbuild_pkgconfig.cmake
    foreach( _lib ${_libraries})
  
      unset( _location )
-Index: magics++-2.28.0/CMakeLists.txt
+Index: magics++-2.29.2/CMakeLists.txt
 ===================================================================
---- magics++-2.28.0.orig/CMakeLists.txt
-+++ magics++-2.28.0/CMakeLists.txt
-@@ -330,7 +330,12 @@ ecbuild_add_resources( TARGET internal
+--- magics++-2.29.2.orig/CMakeLists.txt
++++ magics++-2.29.2/CMakeLists.txt
+@@ -340,7 +340,12 @@ ecbuild_add_resources( TARGET internal
  
  set( MAGICS_DESCRIPTION "Multi-platform meteorological graphics library" )
  set( MAGICS_URL "https://software.ecmwf.int/wiki/display/MAGP/Magics" )
diff --git a/debian/patches/python3.patch b/debian/patches/python3.patch
index fb2db23..f5dd685 100644
--- a/debian/patches/python3.patch
+++ b/debian/patches/python3.patch
@@ -3,19 +3,33 @@ Description: python2,3 compatability code
 Last-Updated: 2016-07-05
 Forwarded: no
 
-Index: magics++-2.28.0/tools/axis2doc.py
+Index: magics++-2.29.2/tools/axis2doc.py
 ===================================================================
---- magics++-2.28.0.orig/tools/axis2doc.py
-+++ magics++-2.28.0/tools/axis2doc.py
-@@ -1,4 +1,6 @@
+--- magics++-2.29.2.orig/tools/axis2doc.py
++++ magics++-2.29.2/tools/axis2doc.py
+@@ -1,12 +1,13 @@
  #!/usr/bin/python
-+
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  from types import *
-@@ -40,7 +42,7 @@ class ObjectHandler(ContentHandler):
- 		
+@@ -45,17 +46,17 @@ class ObjectHandler(ContentHandler):
+ 		p["set"] = "psetc"
+ 		p["values"] = ["lastone", "cycle"]
+ 		p["type"] = "toggle"
+-		
++
  	def anyset(p, attrs):
  		p["set"] = "psetc"
 -		if  attrs.has_key("values") :
@@ -23,7 +37,25 @@ Index: magics++-2.28.0/tools/axis2doc.py
  			val = attrs["values"]
  			values = val.split("/")
  			p["values"] = values
-@@ -88,21 +90,18 @@ class ObjectHandler(ContentHandler):
+ 			p["type"] = "toggle"
+ 		return
+-	
+-	
++
++
+ 	def intnumber(p, attrs):
+ 		p["type"] = "number"
+ 		p["set"] = "pseti"
+@@ -79,7 +80,7 @@ class ObjectHandler(ContentHandler):
+ 		p["set"] = "pset1c"
+ 		return
+ 
+-	types = { 
++	types = {
+ 		"bool": boolset,
+ 		"float": floatnumber,
+ 		"int": intnumber,
+@@ -96,21 +97,18 @@ class ObjectHandler(ContentHandler):
  
  
  	def get(self, attrs, name, default):
@@ -48,40 +80,87 @@ Index: magics++-2.28.0/tools/axis2doc.py
  			self.types[t](p, attrs)
  		else :
  			p["set"]="psetc"
-@@ -117,7 +116,7 @@ class ObjectHandler(ContentHandler):
+@@ -125,58 +123,58 @@ class ObjectHandler(ContentHandler):
  		o["name"] = attrs.get("name")
  		o["documentation"] = ""
  		o["parameters"] = []
 -		if  attrs.has_key("inherits") :
 +		if  "inherits" in attrs:
  			o["inherits"]=attrs.get("inherits")
- 			
+-			
++
  		return o
-@@ -139,12 +138,12 @@ class ObjectHandler(ContentHandler):
- 		if ( name == "option") : 
+ 
+ 	def startElement(self, name, attrs):
+ 		self.tag = name
+-		if ( name == "class" ) : 
++		if ( name == "class" ) :
+ 			self.doc = name
+ 		# New object
+ 			self.object = self.newobject(attrs)
+ 			self.magics[attrs.get("name")] = self.object;
+-		if ( name == "parameter" ) : 
++		if ( name == "parameter" ) :
+ 			if  self.get(attrs, "visible", "on") == "on" :
+ 				self.doc = name
+ 				self.param = self.newparam(attrs)
+ 				self.object["parameters"].append(self.param)
+ 			else :
+ 				self.doc = "nodoc"
+-		if ( name == "option") : 
++		if ( name == "option") :
  			val = attrs.get("fortran")
  			self.param["values"].append(val)
 -			if ( self.param.has_key(val) == False ):
 +			if val not in self.param:
  				self.param[val] = []
  			self.param[val].append(attrs.get("name"))
- 		if ( name == "set" ) : 
+-		if ( name == "set" ) : 
++		if ( name == "set" ) :
  			val = attrs.get("value")
 -			if ( self.param.has_key(val) == False ):
 +			if val not in self.param:
  				self.param[val] = []
  			self.param[val].append(attrs.get("name"))
  
-@@ -167,7 +166,7 @@ class ObjectHandler(ContentHandler):
+-		
++
+ 
+ 	def characters(self, content):
+-		if ( self.tag == "documentation" ) : 
++		if ( self.tag == "documentation" ) :
+ 			if ( self.doc == "class" ) :
+ 				self.actiondoc += content.lstrip();
+ 			if ( self.doc == "parameter" ) :
+ 				self.paramdoc += content.lstrip();
+-				
++
+ 
+ 	def endElement(self, name):
+-		if ( name == "parameter"  and self.doc == "parameter") : 
++		if ( name == "parameter"  and self.doc == "parameter") :
+ 			self.param["documentation"] = self.paramdoc
+ 			self.paramdoc= ""
+-		if ( name == "class" ) : 
++		if ( name == "class" ) :
+ 			self.object["documentation"] = self.actiondoc
  			self.actiondoc= ""
- 			
+-			
++
  	def printDef(self):
 -		print json.dumps(self.magics, indent=2)
+-	
 +		print (json.dumps(self.magics, indent=2))
- 	
++
  
  	def parse(self, file):
-@@ -180,21 +179,21 @@ class ObjectHandler(ContentHandler):
+ 		saxparser = make_parser()
+@@ -184,25 +182,25 @@ class ObjectHandler(ContentHandler):
+ 		datasource = open(self.path + file, "r")
+ 		saxparser.parse(datasource)
+ 		return self.magics
+-	
++
  
  	def prepare(self, defparam):
  		param = defparam.copy()
@@ -111,16 +190,23 @@ Index: magics++-2.28.0/tools/axis2doc.py
  						self.append(newp, v)
  					else:
  						self.append(newp, self.getList(v))
-@@ -210,7 +209,7 @@ class ObjectHandler(ContentHandler):
+@@ -216,32 +214,32 @@ class ObjectHandler(ContentHandler):
+ 
+ 
  	def getList(self, object):
- 		definition = self.magics[object] 
+-		definition = self.magics[object] 
++		definition = self.magics[object]
  		list = []
 -		if definition.has_key("inherits"):
 +		if "inherits" in definition:
  			self.append(list, self.getList(definition["inherits"]))
  		for p in definition["parameters"]:
  			list.append(p["name"])
-@@ -220,8 +219,8 @@ class ObjectHandler(ContentHandler):
+ 		return list;
+-			
+-			
++
++
  
  	def buildParam(self, param):
  		parameters = []
@@ -129,9 +215,15 @@ Index: magics++-2.28.0/tools/axis2doc.py
 +		if "inherits" in param:
 +			print (param["name"] + " inherits from " + param["inherits"])
  			parent = self.buildParam(self.magics[param["inherits"]])
- 			self.append(parameters, parent) 
+-			self.append(parameters, parent) 
++			self.append(parameters, parent)
  		parameters.append(self.prepare(param))
-@@ -232,8 +231,8 @@ class ObjectHandler(ContentHandler):
+ 		return parameters
+-				
+-		
++
++
+ 
  	def build(self, params):
  		parameters = []
  		for p in params:
@@ -142,11 +234,40 @@ Index: magics++-2.28.0/tools/axis2doc.py
  				defp = self.magics[p]
  			# internal object
  				for p in defp["parameters"]:
-Index: magics++-2.28.0/tools/beau.py
+@@ -255,7 +253,7 @@ class ObjectHandler(ContentHandler):
+ 		action = self.magics[action]
+ 
+ 		return action["documentation"]
+-			
++
+ 
+ 
+ def createAction(abbr, name, files):
+@@ -284,10 +282,10 @@ def createAction(abbr, name, files):
+ 	f.write(json.dumps(magics, indent=1))
+ 
+ 
+-#createAction("coast", "Coastlines",  ["Coastlines.xml", "CoastPlotting.xml", "LabelPlotting.xml", "GridPlotting.xml"]) 
+-#createAction("axis",  "Axis", ["Axis.xml"]) 
+-#createAction("symb",  "SymbolPlotting", ["SymbolPlotting.xml"]) 
+-#createAction("subpage",  "FortranViewNode", ["SubPage.xml", "GeoRectangularProjection.xml", 
+-#											 "XYTransformation.xml", "Proj4Projection.xml", "PolarStereographicProjection.xml"]) 
++#createAction("coast", "Coastlines",  ["Coastlines.xml", "CoastPlotting.xml", "LabelPlotting.xml", "GridPlotting.xml"])
++#createAction("axis",  "Axis", ["Axis.xml"])
++#createAction("symb",  "SymbolPlotting", ["SymbolPlotting.xml"])
++#createAction("subpage",  "FortranViewNode", ["SubPage.xml", "GeoRectangularProjection.xml",
++#											 "XYTransformation.xml", "Proj4Projection.xml", "PolarStereographicProjection.xml"])
+ 
+-createAction("wind",  "Wind", ["wind.xml"]) 
++createAction("wind",  "Wind", ["wind.xml"])
+Index: magics++-2.29.2/tools/beau.py
 ===================================================================
---- magics++-2.28.0.orig/tools/beau.py
-+++ magics++-2.28.0/tools/beau.py
-@@ -1,10 +1,10 @@
+--- magics++-2.29.2.orig/tools/beau.py
++++ magics++-2.29.2/tools/beau.py
+@@ -6,13 +6,13 @@
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 -
 +from __future__ import print_function
  import xml.dom.minidom
@@ -159,17 +280,81 @@ Index: magics++-2.28.0/tools/beau.py
 +print (pretty_xml_as_string)
  
  
-Index: magics++-2.28.0/tools/xml2doc.py
+Index: magics++-2.29.2/tools/xml2doc.py
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2doc.py
-+++ magics++-2.28.0/tools/xml2doc.py
-@@ -1,4 +1,4 @@
+--- magics++-2.29.2.orig/tools/xml2doc.py
++++ magics++-2.29.2/tools/xml2doc.py
+@@ -1,20 +1,17 @@
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 -
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  import sys
-@@ -122,7 +122,7 @@ class ObjectHandler(ContentHandler):
+ 
+ 
+-
+-
+-
+ class ObjectHandler(ContentHandler):
+ 	name = ""
+ 	defparam = ""
+@@ -43,7 +40,7 @@ class ObjectHandler(ContentHandler):
+ 
+ 	def characters(self, data):
+ 		pass
+-	
++
+ 	def toggle(self, attrs):
+ 		s = "\t%s\n\t{\n" % attrs.get("name")
+ 		s = s + "\t\ton; on\n"
+@@ -53,7 +50,7 @@ class ObjectHandler(ContentHandler):
+ 
+ 
+ 	def any(self, attrs):
+-		s = "DOCUMENATION " 
++		s = "DOCUMENATION "
+ 		s = s + "\t} = %s" % self.default(attrs)
+ 		return s
+ 
+@@ -86,7 +83,7 @@ class ObjectHandler(ContentHandler):
+ 		return s
+ 
+ 	def linestyle(self, attrs):
+-		s = "here we found a line " 
++		s = "here we found a line "
+ 		s = s + "\t} DEFAULT %s\n" % self.default(attrs)
+ 		return s
+ 
+@@ -108,7 +105,7 @@ class ObjectHandler(ContentHandler):
+ 		s = s + "</tr>\n"
+ 		return s
+ 
+-	
++
+ 	types = { "normal" : normal,
+ 			  "header" : header}
+ 
+@@ -117,7 +114,7 @@ class ObjectHandler(ContentHandler):
+ 			if p["name"] == param:
+ 				selfcurrent = p
+ 				return
+-		self.current = {"name" : param,  "type": "normal", "from" : value, "default" : default, "doc":""} 
++		self.current = {"name" : param,  "type": "normal", "from" : value, "default" : default, "doc":""}
+ 		self.params.append(self.current)
+ 
+ 	def startElement(self, name, attrs):
+@@ -130,7 +127,7 @@ class ObjectHandler(ContentHandler):
  			if self.inherits != '':
  				try:
  					file = open("xml/%s.xml" % attrs.get("inherits"), "r")
@@ -178,26 +363,94 @@ Index: magics++-2.28.0/tools/xml2doc.py
  					object = ObjectHandler()
  					parser = make_parser()
  					object.params = []
-Index: magics++-2.28.0/tools/xml2html.py
+@@ -139,7 +136,7 @@ class ObjectHandler(ContentHandler):
+ 					self.params.append(s)
+ 					for s in object.params:
+ 						self.params.append(s)
+-						
++
+ 				except:
+ 					pass
+ 
+@@ -166,7 +163,7 @@ class ObjectHandler(ContentHandler):
+ 				value = attrs.get("fortran");
+ 				if (attrs.get("fortran") != attrs.get("xml")) :
+ 					value = "%s/%s"%(attrs.get("fortran"), attrs.get("xml"))
+-					
++
+ 				p = {"name" : self.param,  "value" : value , "type" : "header"}
+ 				self.params.append(p)
+ 				parser.parse(file)
+@@ -180,14 +177,14 @@ class ObjectHandler(ContentHandler):
+ 		if (name == "magics") :
+ 			return
+ 
+-			
++
+ 		if (name == "documentation") :
+ 			self.current["doc"] = self.doc
+ 			pass
+-			
++
+ 		if (name == "class") :
+ 			filename = "xml/%s.html" % self.name
+-			# <tr style="background-color: rgb(204, 204, 255);"> 
++			# <tr style="background-color: rgb(204, 204, 255);">
+ 			definition = open(filename, "w")
+ 			definition.write( "<h3>%s parameters</h3>\n" % self.name)
+ 			definition.write( '<table cellspacing="1" cellpadding="1" border="1" style="width: 100%;">\n')
+@@ -196,7 +193,7 @@ class ObjectHandler(ContentHandler):
+ 			definition.write( "  <td><strong>Parameter</strong></td><td><strong>Type</strong></td>\n")
+ 			definition.write( "  <td><strong>Documentation</strong></td><td><strong>Default</strong></td>\n")
+ 			definition.write( "</tr>\n")
+-			for param in self.params:	
++			for param in self.params:
+ 				s = self.types[param["type"]](self, param)
+ 				definition.write(s)
+ 			definition.write( "</font></tbody>\n")
+Index: magics++-2.29.2/tools/xml2html.py
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2html.py
-+++ magics++-2.28.0/tools/xml2html.py
-@@ -1,4 +1,5 @@
+--- magics++-2.29.2.orig/tools/xml2html.py
++++ magics++-2.29.2/tools/xml2html.py
+@@ -1,12 +1,13 @@
  #!/usr/bin/python
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  from types import *
-@@ -26,7 +27,7 @@ class ObjectHandler(ContentHandler):
+@@ -32,16 +33,16 @@ class ObjectHandler(ContentHandler):
+ 	def lineset(p, attrs):
+ 		p["values"] = ["solid", "dash", "dot"]
  		p["type"] = "toggle"
- 		
+-		
++
  	def anyset(p, attrs):
 -		if  attrs.has_key("values") :
 +		if  "values" in attrs:
  			val = attrs["values"]
  			values = val.split("/")
  			p["values"] = values
-@@ -42,7 +43,7 @@ class ObjectHandler(ContentHandler):
+ 			p["type"] = "toggle"
+ 		return
+-	
+-	types = { 
++
++	types = {
+ 		"bool": boolset,
+ 		"string": anyset,
+ 		"Colour": anyset,
+@@ -50,7 +51,7 @@ class ObjectHandler(ContentHandler):
  
  
  	def get(self, attrs, name, default):
@@ -206,7 +459,7 @@ Index: magics++-2.28.0/tools/xml2html.py
  			return attrs.get(name)
  		else :
  			return default
-@@ -53,7 +54,7 @@ class ObjectHandler(ContentHandler):
+@@ -61,7 +62,7 @@ class ObjectHandler(ContentHandler):
  		p["type"] = attrs.get("to")
  		p["values"] = []
  		t = p["type"]
@@ -215,7 +468,7 @@ Index: magics++-2.28.0/tools/xml2html.py
  			self.types[t](p, attrs)
  		else :
  			p["type"]="toggle"
-@@ -68,9 +69,9 @@ class ObjectHandler(ContentHandler):
+@@ -76,58 +77,58 @@ class ObjectHandler(ContentHandler):
  		o["name"] = attrs.get("name")
  		o["documentation"] = ""
  		o["parameters"] = []
@@ -227,33 +480,80 @@ Index: magics++-2.28.0/tools/xml2html.py
  		return o
  
  	def startElement(self, name, attrs):
-@@ -90,12 +91,12 @@ class ObjectHandler(ContentHandler):
- 		if ( name == "option") : 
+ 		self.tag = name
+-		if ( name == "class" ) : 
++		if ( name == "class" ) :
+ 			self.doc = name
+ 		# New object
+ 			self.object = self.newobject(attrs)
+ 			self.magics[attrs.get("name")] = self.object;
+-		if ( name == "parameter" ) : 
++		if ( name == "parameter" ) :
+ 			if  self.get(attrs, "visible", "on") == "on" :
+ 				self.doc = name
+ 				self.param = self.newparam(attrs)
+ 				self.object["parameters"].append(self.param)
+ 			else :
+ 				self.doc = "nodoc"
+-		if ( name == "option") : 
++		if ( name == "option") :
  			val = attrs.get("fortran")
  			self.param["values"].append(val)
 -			if ( self.param.has_key(val) == False ):
 +			if "val" not in self.param:
  				self.param[val] = []
  			self.param[val].append(attrs.get("name"))
- 		if ( name == "set" ) : 
+-		if ( name == "set" ) : 
++		if ( name == "set" ) :
  			val = attrs.get("value")
 -			if ( self.param.has_key(val) == False ):
 +			if "val" not in self.param:
  				self.param[val] = []
  			self.param[val].append(attrs.get("name"))
  
-@@ -118,7 +119,7 @@ class ObjectHandler(ContentHandler):
+-		
++
+ 
+ 	def characters(self, content):
+-		if ( self.tag == "documentation" ) : 
++		if ( self.tag == "documentation" ) :
+ 			if ( self.doc == "class" ) :
+ 				self.actiondoc += content.lstrip();
+ 			if ( self.doc == "parameter" ) :
+ 				self.paramdoc += content.lstrip();
+-				
++
+ 
+ 	def endElement(self, name):
+-		if ( name == "parameter"  and self.doc == "parameter") : 
++		if ( name == "parameter"  and self.doc == "parameter") :
+ 			self.param["documentation"] = self.paramdoc
+ 			self.paramdoc= ""
+-		if ( name == "class" ) : 
++		if ( name == "class" ) :
+ 			self.object["documentation"] = self.actiondoc
  			self.actiondoc= ""
- 			
+-			
++
  	def printDef(self):
 -		print json.dumps(self.magics, indent=2)
+-	
 +		print (json.dumps(self.magics, indent=2))
- 	
++
  
  	def parse(self, file):
-@@ -133,25 +134,25 @@ class ObjectHandler(ContentHandler):
+ 		saxparser = make_parser()
+@@ -135,40 +136,40 @@ class ObjectHandler(ContentHandler):
+ 		datasource = open(self.path + file, "r")
+ 		saxparser.parse(datasource)
+ 		return self.magics
+-	
++
+ 	def build(self, actions, args):
+ 		defs = args["parameters"]
  		parameters = []
- 			
+-			
++
  		for a in actions:
 -			if ( type(a) != dict and self.magics.has_key(a) ) :
 +			if ( type(a) != dict and a in self.magics) :
@@ -264,9 +564,10 @@ Index: magics++-2.28.0/tools/xml2html.py
  					parent = action["inherits"]
  					definition = self.magics[parent]
 -					print  a + " xxxxinherits from " + parent
-+					print ( a + " xxxxinherits from " + parent)
- 			
+-			
 -					print "??????????????????"
++					print ( a + " xxxxinherits from " + parent)
++
 +					print ("??????????????????")
  					for p in definition["parameters"]:
 -						print p["name"]	
@@ -283,18 +584,54 @@ Index: magics++-2.28.0/tools/xml2html.py
 +						if val in param:
  							param[val] = self.build(param[val], action)
  						else :
- 							param[val] = [] 
-Index: magics++-2.28.0/tools/xml2odt.py
+-							param[val] = [] 
++							param[val] = []
+ 			else :
+ 				for param in defs:
+ 					if (param["name"] == a) :
+ 						parameters.append(param)
+ 						defs.remove(param)
+-					
++
+ 
+ 		return parameters;
+ 
+@@ -179,7 +180,7 @@ class ObjectHandler(ContentHandler):
+ 		action = self.magics[action]
+ 
+ 		return action["documentation"]
+-			
++
+ 
+ 
+ object = ObjectHandler()
+@@ -202,4 +203,3 @@ magics["magics"].append(action)
+ 
+ f = open('coast.json', "w")
+ f.write(json.dumps(magics, indent=1))
+-
+Index: magics++-2.29.2/tools/xml2odt.py
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2odt.py
-+++ magics++-2.28.0/tools/xml2odt.py
-@@ -1,4 +1,5 @@
+--- magics++-2.29.2.orig/tools/xml2odt.py
++++ magics++-2.29.2/tools/xml2odt.py
+@@ -1,12 +1,12 @@
  #!/usr/bin/python
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+-
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  from types import *
-@@ -7,8 +8,8 @@ import sys
+@@ -15,8 +15,8 @@ import sys
  
  
  if(len(sys.argv) != 3) :
@@ -305,18 +642,60 @@ Index: magics++-2.28.0/tools/xml2odt.py
      sys.exit()
  
  
-Index: magics++-2.28.0/tools/xml2split.py
+@@ -66,23 +66,23 @@ class ObjectHandler(ContentHandler):
+         if (name == "class"):
+             definition.write('</table:table>\n')
+         if (name == "documentation"):
+-            definition.write('<table:table-row>\n'); 
+-            definition.write(' <table:table-cell table:style-name="ParameterTable.A1" office:value-type="string">\n'); 
+-            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n' % self.param); 
+-            definition.write(' </table:table-cell>\n'); 
+-            definition.write(' <table:table-cell table:style-name="ParameterTable.A2" office:value-type="string">\n'); 
+-            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n'% self.type); 
+-            definition.write(' </table:table-cell>\n'); 
+-            definition.write(' <table:table-cell table:style-name="ParameterTable.A3" office:value-type="string">\n'); 
+-            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n'% self.text); 
+-            definition.write(' </table:table-cell>\n'); 
+-            definition.write(' <table:table-cell table:style-name="ParameterTable.A4" office:value-type="string">\n'); 
+-            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n' % self.default); 
+-            definition.write(' </table:table-cell>\n'); 
+-            definition.write('</table:table-row>\n'); 
+-            
++            definition.write('<table:table-row>\n');
++            definition.write(' <table:table-cell table:style-name="ParameterTable.A1" office:value-type="string">\n');
++            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n' % self.param);
++            definition.write(' </table:table-cell>\n');
++            definition.write(' <table:table-cell table:style-name="ParameterTable.A2" office:value-type="string">\n');
++            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n'% self.type);
++            definition.write(' </table:table-cell>\n');
++            definition.write(' <table:table-cell table:style-name="ParameterTable.A3" office:value-type="string">\n');
++            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n'% self.text);
++            definition.write(' </table:table-cell>\n');
++            definition.write(' <table:table-cell table:style-name="ParameterTable.A4" office:value-type="string">\n');
++            definition.write('  <text:p text:style-name="Para_Table_Contents">%s</text:p>\n' % self.default);
++            definition.write(' </table:table-cell>\n');
++            definition.write('</table:table-row>\n');
++
+     def characters(self, content):
+-        self.text = content       
++        self.text = content
+ 
+ 
+ object = ObjectHandler()
+Index: magics++-2.29.2/tools/xml2split.py
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2split.py
-+++ magics++-2.28.0/tools/xml2split.py
-@@ -1,5 +1,5 @@
+--- magics++-2.29.2.orig/tools/xml2split.py
++++ magics++-2.29.2/tools/xml2split.py
+@@ -7,7 +7,7 @@
+ # does it submit to any jurisdiction.
+ 
  
 -
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  import sys
-@@ -32,7 +32,7 @@ class ObjectHandler(ContentHandler):
+@@ -40,7 +40,7 @@ class ObjectHandler(ContentHandler):
  			self.file.write(data);
  
  	def startElement(self, name, attrs):
@@ -325,7 +704,7 @@ Index: magics++-2.28.0/tools/xml2split.py
  		if (name == "magics") :
  			return
  		if (name == "static") :
-@@ -44,13 +44,13 @@ class ObjectHandler(ContentHandler):
+@@ -52,13 +52,13 @@ class ObjectHandler(ContentHandler):
  			self.file=open(filename, "w")
  			self.open_file = 1;
  			self.file.write("<magics>\n")
@@ -341,17 +720,28 @@ Index: magics++-2.28.0/tools/xml2split.py
  		if ( self.open_file == 0):
  			return
  
-Index: magics++-2.28.0/tools/xml2mv.py
+Index: magics++-2.29.2/tools/xml2mv.py
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2mv.py
-+++ magics++-2.28.0/tools/xml2mv.py
-@@ -1,4 +1,5 @@
+--- magics++-2.29.2.orig/tools/xml2mv.py
++++ magics++-2.29.2/tools/xml2mv.py
+@@ -1,12 +1,13 @@
  #!/usr/bin/python
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 +from __future__ import print_function
  from xml.sax.handler import ContentHandler
  from xml.sax import make_parser
  from types import *
-@@ -7,8 +8,8 @@ import sys
+@@ -15,8 +16,8 @@ import sys
  
  
  if(len(sys.argv) != 6) :
@@ -362,7 +752,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
      sys.exit()
  
  
-@@ -73,7 +74,7 @@ class ObjectHandler(ContentHandler):
+@@ -81,7 +82,7 @@ class ObjectHandler(ContentHandler):
  
  	def default(self, attrs):
  		val = attrs.get("metview_default");
@@ -371,7 +761,16 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			val = attrs.get("default");
  
  		if (val == "") :
-@@ -311,7 +312,7 @@ class ObjectHandler(ContentHandler):
+@@ -126,7 +127,7 @@ class ObjectHandler(ContentHandler):
+ 
+ 	def characters(self, data):
+ 		pass
+-	
++
+ 
+ 	# addhidden - if the appropriate flag is set in the attributes, return the text that will
+ 	#             make the parameter hidden (but available) in Metview
+@@ -319,7 +320,7 @@ class ObjectHandler(ContentHandler):
  
  
  	def addOptionalParam(self, paramname, requirements):
@@ -380,7 +779,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			if not(requirements[0] in self.optionalparams[paramname]):
  				self.optionalparams[paramname] = self.optionalparams[paramname] + requirements
  		else:
-@@ -319,7 +320,7 @@ class ObjectHandler(ContentHandler):
+@@ -327,7 +328,7 @@ class ObjectHandler(ContentHandler):
  
  
  	def addRelatedOptionalRequirements(self):
@@ -389,7 +788,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  		for optparam in optparams:
  			conditions = self.optionalparams[optparam]
  			for condition in conditions:
-@@ -328,7 +329,7 @@ class ObjectHandler(ContentHandler):
+@@ -336,7 +337,7 @@ class ObjectHandler(ContentHandler):
  
  
  	def addRelatedOptionalRequirements2(self):
@@ -398,7 +797,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  		for optparam in optparams:
  			conditions = self.optionalparams[optparam]
  			for condition in conditions:
-@@ -341,9 +342,9 @@ class ObjectHandler(ContentHandler):
+@@ -349,9 +350,9 @@ class ObjectHandler(ContentHandler):
  
  	# see top of file for description of optionalparams and optionalparams2
  	def reorganiseOptionalParameters(self):
@@ -410,7 +809,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  				self.optionalparams2[condition].add(optparam)
  			else:
  				self.optionalparams2[condition] = set([optparam])
-@@ -355,7 +356,7 @@ class ObjectHandler(ContentHandler):
+@@ -363,7 +364,7 @@ class ObjectHandler(ContentHandler):
  	def ensureOptionalParameters2DependenciesAreInRightOrder(self):
  		self.optionalparams3 = () # empty tuple, will contain an ordered version of optionalparams2
  
@@ -419,7 +818,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			# does this rule unset something that is needed in the optionalparams3 rules?
  			unsetparams2 = self.optionalparams2[conditions2]
  			newtuple3 = (conditions2, unsetparams2)
-@@ -374,7 +375,7 @@ class ObjectHandler(ContentHandler):
+@@ -382,7 +383,7 @@ class ObjectHandler(ContentHandler):
  
  			# we now know that the clause should go into position 'position' in the new tuple
  			if self.debug:
@@ -428,7 +827,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			if position == 0:
  				firstpart = ()
  				secondpart = (newtuple3,)
-@@ -395,7 +396,7 @@ class ObjectHandler(ContentHandler):
+@@ -403,7 +404,7 @@ class ObjectHandler(ContentHandler):
  
  
  	def newClass(self, c):
@@ -437,7 +836,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			self.classes[c] = {"inherits_reqs_from": set(),   # 'inherits_params_from' is an empty set
  			                   "inherits_params_from": set()}
  			#print "newClass " + c
-@@ -437,7 +438,7 @@ class ObjectHandler(ContentHandler):
+@@ -445,7 +446,7 @@ class ObjectHandler(ContentHandler):
  			params = self.classes[c].get("params", ())
  			for p in params:
  				x = reqs
@@ -446,7 +845,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  					self.addOptionalParam(p, x)
  					#self.addOptionalParam(p, (x,))
  
-@@ -455,11 +456,11 @@ class ObjectHandler(ContentHandler):
+@@ -463,11 +464,11 @@ class ObjectHandler(ContentHandler):
  		#print spaces + "enter rec, class = " + classname
  		for parent in i:
  			#print parent
@@ -460,7 +859,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  					for req in reqs:
  						#print "ADDING REQ FROM RECURSIVE"
  						self.addRequirementToClass(req[0], req[1], classname)
-@@ -481,11 +482,11 @@ class ObjectHandler(ContentHandler):
+@@ -489,11 +490,11 @@ class ObjectHandler(ContentHandler):
  		#print spaces + "enter rec, class = " + classname
  		for parent in i:
  			#print parent
@@ -474,7 +873,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  					for params in params:
  						#print "ADDING REQ FROM RECURSIVE"
  						self.addParamsFromOneClassToAnother(parent, classname)
-@@ -532,7 +533,7 @@ class ObjectHandler(ContentHandler):
+@@ -540,7 +541,7 @@ class ObjectHandler(ContentHandler):
  					try:
  						file = open(fname, "r")
  						if (self.debug):
@@ -483,7 +882,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  						self.filehistory.append(fname)
  						object = ObjectHandler()
  						object.myoptions = []
-@@ -568,17 +569,17 @@ class ObjectHandler(ContentHandler):
+@@ -576,17 +577,17 @@ class ObjectHandler(ContentHandler):
  				return
  			if (attrs.get("inherit_parent_reqs") != 'no'):
  				docclass = attrs.get("doc_class", None)
@@ -507,7 +906,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  				self.newparam(self.param, f(self, attrs), self.default(attrs))
  			else:
  				self.last = self.last + self.options(attrs)
-@@ -605,7 +606,7 @@ class ObjectHandler(ContentHandler):
+@@ -613,7 +614,7 @@ class ObjectHandler(ContentHandler):
  					#	self.classes[attrs.get("name")]["inherits_reqs_from"].add(self.classname)
  					#	print "YClass " + attrs.get("name") + " inherits_reqs_from " + self.classname
  					if attrs.get("docdive") != 'no' and  attrs.get("doc_inherits") != 'no' :
@@ -516,7 +915,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  							fname = "/%s.xml" % attrs.get("xmlfile")
  						else:
  							fname = "%s/%s.xml" % (sys.argv[1], attrs.get("name"))
-@@ -614,7 +615,7 @@ class ObjectHandler(ContentHandler):
+@@ -622,7 +623,7 @@ class ObjectHandler(ContentHandler):
  								file = open(fname, "r")
  								self.filehistory.append(fname)
  								if (self.debug):
@@ -525,7 +924,7 @@ Index: magics++-2.28.0/tools/xml2mv.py
  								object = ObjectHandler()
  								object.myoptions = []
  								object.myrules = {}
-@@ -667,8 +668,8 @@ class ObjectHandler(ContentHandler):
+@@ -675,13 +676,13 @@ class ObjectHandler(ContentHandler):
  			self.last = self.last + "\t} = %s\n" % self.defparam
  			self.newparam(self.param, self.last, self.defparam)
  			if (self.debug) :
@@ -536,7 +935,33 @@ Index: magics++-2.28.0/tools/xml2mv.py
  			self.last = ""
  			for option in self.myoptions:
  				for p in option:
-@@ -768,7 +769,7 @@ class ObjectHandler(ContentHandler):
+ 					#print "    adding newparam from option: " + p[0]
+-					self.newparam(p[0], p[1], p[2]) 
++					self.newparam(p[0], p[1], p[2])
+ 			self.myoptions = []
+ 			for rules in self.myrules:
+ 				current = rules
+@@ -694,7 +695,7 @@ class ObjectHandler(ContentHandler):
+ 							except:
+ 								pass
+ 							unsets.append(p[0])
+-					
++
+ 				for unset in self.myrules:
+ 					if (unset == rules):
+ 						for p in self.myrules[unset]:
+@@ -710,8 +711,8 @@ class ObjectHandler(ContentHandler):
+ 						pass
+ 
+ 			self.myrules = {}
+-			
+-			
++
++
+ 		if (name == "magics") :
+ 			if self.toplevel:
+ 				#print "SL (end class): " + self.last
+@@ -776,7 +777,7 @@ class ObjectHandler(ContentHandler):
  				# two different ways to generate the rules
  				if False:
  					rules = open(sys.argv[5], "w")
@@ -545,20 +970,27 @@ Index: magics++-2.28.0/tools/xml2mv.py
  						rules.write("\n%if")
  						first = True
  						prevparam = ""
-@@ -845,4 +846,4 @@ saxparser.setContentHandler(object)
+@@ -853,4 +854,4 @@ saxparser.setContentHandler(object)
  
  datasource = open(sys.argv[1] +"/" + sys.argv[2], "r")
  saxparser.parse(datasource)
 -print "DONE"
 +print ("DONE")
-Index: magics++-2.28.0/python/Magics/macro.py
+Index: magics++-2.29.2/python/Magics/macro.py
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/macro.py
-+++ magics++-2.28.0/python/Magics/macro.py
-@@ -1,361 +1,381 @@
+--- magics++-2.29.2.orig/python/Magics/macro.py
++++ magics++-2.29.2/python/Magics/macro.py
+@@ -1,369 +1,381 @@
+-# (C) Copyright 1996-2016 ECMWF.
+-# 
+-# This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
+-# granted to it by virtue of its status as an intergovernmental organisation nor
+-# does it submit to any jurisdiction.
 +from __future__ import print_function
 +from six import iteritems
-+
+ 
  import os
  import Magics
  import numpy
@@ -1282,7 +1714,7 @@ Index: magics++-2.28.0/python/Magics/macro.py
  
  mcoast = make_action("mcoast", Magics.coast, "Coastlines")
  pcoast = make_action("pcoast", Magics.coast)
-@@ -377,7 +397,7 @@ mmapgen = make_action("mmapgen", Magics.
+@@ -385,7 +397,7 @@ mmapgen = make_action("mmapgen", Magics.
  pnetcdf = make_action("pnetcdf", Magics.netcdf)
  mnetcdf = make_action("mnetcdf", Magics.netcdf)
  odb_geopoints = make_action("odb_geopoints", Magics.odb, "Odbviewer")
@@ -1291,7 +1723,7 @@ Index: magics++-2.28.0/python/Magics/macro.py
  odb_xypoints = make_action("odb_xypoints", Magics.odb, "Odbviewer")
  odb_xyvectors = make_action("odb_xyvectors", Magics.odb, "Odbviewer")
  pmap = make_action("pmap", None, "Subpage")
-@@ -418,75 +438,82 @@ mtephi = make_action("mtephi", Magics.te
+@@ -426,75 +438,82 @@ mtephi = make_action("mtephi", Magics.te
  mmetgraph = make_action("mmetgraph", Magics.mmetgraph)
  mmetbufr = make_action("mmetbufr", Magics.mmetbufr)
  
@@ -1434,16 +1866,27 @@ Index: magics++-2.28.0/python/Magics/macro.py
 +        if os.system(cmd):
 +            print("Error in viewing ODB data... Aborting")
 +            os.abort()
-Index: magics++-2.28.0/python/Magics/metgram.py
+Index: magics++-2.29.2/python/Magics/metgram.py
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/metgram.py
-+++ magics++-2.28.0/python/Magics/metgram.py
-@@ -1,3 +1,4 @@
+--- magics++-2.29.2.orig/python/Magics/metgram.py
++++ magics++-2.29.2/python/Magics/metgram.py
+@@ -1,11 +1,12 @@
+ # (C) Copyright 1996-2016 ECMWF.
+-# 
++#
+ # This software is licensed under the terms of the Apache Licence Version 2.0
+-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 
+-# In applying this licence, ECMWF does not waive the privileges and immunities 
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
+ # granted to it by virtue of its status as an intergovernmental organisation nor
+ # does it submit to any jurisdiction.
+ 
 +from __future__ import print_function
  import simplejson
  import tempfile
  import os
-@@ -21,10 +22,10 @@ magics["drivers"] = drivers
+@@ -29,10 +30,10 @@ magics["drivers"] = drivers
  
  definition = []
  definition.append( {
@@ -1458,7 +1901,7 @@ Index: magics++-2.28.0/python/Magics/metgram.py
      "axis_tick_colour": "kelly_green" ,
      "axis_line_colour":"kelly_green" ,
      "axis_grid":"on",
-@@ -33,7 +34,7 @@ definition.append( {
+@@ -41,7 +42,7 @@ definition.append( {
  })
  
  definition.append({
@@ -1467,20 +1910,22 @@ Index: magics++-2.28.0/python/Magics/metgram.py
      "id" : "haxis_last",
      "axis_type" : "date",
      "axis_tick_label": "on",
-@@ -56,9 +57,9 @@ definition.append({
+@@ -64,10 +65,10 @@ definition.append({
  
  
  definition.append({
 -	"class": "vertical_axis",
 -	"id" : "vaxis",
 -	"axis_line":"on", 
+-    "axis_grid":"on", 
 +    "class": "vertical_axis",
 +    "id" : "vaxis",
-+    "axis_line":"on", 
-     "axis_grid":"on", 
++    "axis_line":"on",
++    "axis_grid":"on",
      "axis_line_colour":"kelly_green" ,
      "axis_tick_label_colour":"kelly_green",
-@@ -72,37 +73,37 @@ pages = []
+     "axis_label_font":"sansserif",
+@@ -80,37 +81,37 @@ pages = []
  
  header = {  "height" : "12%" }
  def page():
@@ -1520,10 +1965,10 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 +        },
 +        "horizontal_axis": { "use_id" : "haxis" },
 +        "vertical_axis": { "use_id" : "vaxis" }
++
  
 -		
 -	}
-+        
 +    }
  
 -	}
@@ -1535,13 +1980,13 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		humi =  {
-+    
++
 +    def execute(self):
 +        humi =  {
              "epsbufr":
              {
                  "epsbufr_parameter_descriptor":"13003",
-@@ -112,43 +113,43 @@ class humidity(object):
+@@ -120,43 +121,43 @@ class humidity(object):
              "metgraph": { "curve": { } }
          }
  
@@ -1568,7 +2013,7 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		msl =  {
-+    
++
 +    def execute(self):
 +        msl =  {
              "epsbufr":
@@ -1600,13 +2045,13 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		cloud =  {
-+    
++
 +    def execute(self):
 +        cloud =  {
              "epsbufr":
              {
                  "epsbufr_parameter_descriptor":"20010",
-@@ -158,21 +159,21 @@ class cloud(object):
+@@ -166,21 +167,21 @@ class cloud(object):
              "metgraph": { "bar": { } }
          }
  
@@ -1633,13 +2078,13 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		precip =  {
-+    
++
 +    def execute(self):
 +        precip =  {
              "epsbufr":
              {
                  "epsbufr_parameter_descriptor":"13011",
-@@ -182,17 +183,17 @@ class precip(object):
+@@ -190,17 +191,17 @@ class precip(object):
              },
              "metgraph": { "bar": { } }
          }
@@ -1660,13 +2105,13 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		wind =  {
-+    
++
 +    def execute(self):
 +        wind =  {
              "epsbufr":
              {
                  "epsbufr_parameter_descriptor":"11003",
-@@ -202,116 +203,116 @@ class wind(object):
+@@ -210,116 +211,116 @@ class wind(object):
              },
              "metgraph": { "flags": { } }
          }
@@ -1705,7 +2150,7 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	
 -	def execute(self):
 -		t850 =  {
-+    
++
 +    def execute(self):
 +        t850 =  {
              "epsbufr":
@@ -1716,10 +2161,11 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 +                "epsbufr_parameter_offset_factor": "-273.15",
                  "use_id":"station"
              },
-             "metgraph": { 
+-            "metgraph": { 
 -				"metgram_plot_style":"curve",
 -				"metgram_curve_colour":"blue"
 -				}
++            "metgraph": {
 +                "metgram_plot_style":"curve",
 +                "metgram_curve_colour":"blue"
 +                }
@@ -1738,10 +2184,11 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 +                "epsbufr_parameter_offset_factor": "-273.15",
                  "use_id":"station"
              },
-             "metgraph": { 
+-            "metgraph": { 
 -				"metgram_plot_style":"curve",
 -				"metgram_curve_colour":"red"
 -				}
++            "metgraph": {
 +                "metgram_plot_style":"curve",
 +                "metgram_curve_colour":"red"
 +                }
@@ -1771,16 +2218,16 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -	def execute(self):
 -		magics["definition"].append(self.definition)
 -		return page()
-+    def __init__(self, args):    
++    def __init__(self, args):
 +        self.definition = args
 +        self.definition["id"]= "station"
 +        self.definition["class"]= "epsbufr"
 +    def execute(self):
 +        magics["definition"].append(self.definition)
 +        return page()
++
  
 -	
-+    
  class ps(object):
 -	def __init__(self, args):	
 -		self.definition = args
@@ -1790,7 +2237,7 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 -			magics["drivers"]=[]
 -		magics["drivers"].append(self.definition)
 -		return page()
-+    def __init__(self, args):    
++    def __init__(self, args):
 +        self.definition = args
 +        self.definition["format"]= "ps"
 +    def execute(self):
@@ -1798,9 +2245,9 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 +            magics["drivers"]=[]
 +        magics["drivers"].append(self.definition)
 +        return page()
++
  
 -	
-+    
  
  
  
@@ -1841,8 +2288,8 @@ Index: magics++-2.28.0/python/Magics/metgram.py
 +        if (i == nb) :
 +            haxis="haxis_last"
 +        map["map"]["horizontal_axis"]["use_id"] = haxis
-+        
-+            
++
++
 +    s = simplejson.dumps(magics, indent=4 * ' ')
 +    f = tempfile.NamedTemporaryFile()
 +    f.write(s)
@@ -1858,10 +2305,15 @@ Index: magics++-2.28.0/python/Magics/metgram.py
  
  cloud = cloud()
  humidity = humidity()
-Index: magics++-2.28.0/python/Magics/CMakeLists.txt
+@@ -327,4 +328,3 @@ precip = precip()
+ tempe = tempe()
+ msl = msl()
+ wind = wind()
+-
+Index: magics++-2.29.2/python/Magics/CMakeLists.txt
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/CMakeLists.txt
-+++ magics++-2.28.0/python/Magics/CMakeLists.txt
+--- magics++-2.29.2.orig/python/Magics/CMakeLists.txt
++++ magics++-2.29.2/python/Magics/CMakeLists.txt
 @@ -25,9 +25,13 @@ if( HAVE_PYTHON )
    include_directories( ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} )
  
@@ -1877,11 +2329,12 @@ Index: magics++-2.28.0/python/Magics/CMakeLists.txt
    set_source_files_properties(partio.i PROPERTIES SWIG_FLAGS "-includeall")
  
    swig_link_libraries( Magics MagPlus ${PYTHON_LIBRARIES} )
-Index: magics++-2.28.0/test/cairo.py
+Index: magics++-2.29.2/test/cairo.py
 ===================================================================
---- magics++-2.28.0.orig/test/cairo.py
-+++ magics++-2.28.0/test/cairo.py
-@@ -1,5 +1,7 @@
+--- magics++-2.29.2.orig/test/cairo.py
++++ magics++-2.29.2/test/cairo.py
+@@ -8,6 +8,8 @@
+ 
  # importing Magics module
  
 +from __future__ import print_function
@@ -1889,7 +2342,7 @@ Index: magics++-2.28.0/test/cairo.py
  from Magics.macro import *
  
  
-@@ -54,7 +56,7 @@ legend = mlegend(
+@@ -62,7 +64,7 @@ legend = mlegend(
  
  # To the plot
  
@@ -1898,18 +2351,19 @@ Index: magics++-2.28.0/test/cairo.py
  plot( output,  europe, coast, )
  tofortran(ref, output,  europe, coast, )
  
-Index: magics++-2.28.0/test/bufr.py
+Index: magics++-2.29.2/test/bufr.py
 ===================================================================
---- magics++-2.28.0.orig/test/bufr.py
-+++ magics++-2.28.0/test/bufr.py
-@@ -1,5 +1,6 @@
+--- magics++-2.29.2.orig/test/bufr.py
++++ magics++-2.29.2/test/bufr.py
+@@ -8,6 +8,7 @@
+ 
  # importing Magics module
  
 +from __future__ import print_function
  from Magics.macro import *
  
  
-@@ -46,7 +47,7 @@ title = \
+@@ -54,7 +55,7 @@ title = \
  
  # To the plot
  
@@ -1918,29 +2372,31 @@ Index: magics++-2.28.0/test/bufr.py
  plot( output,  europe, obs, coast, )
  tofortran(ref, output,  europe, obs, coast, )
  
-Index: magics++-2.28.0/test/coast.py
+Index: magics++-2.29.2/test/coast.py
 ===================================================================
---- magics++-2.28.0.orig/test/coast.py
-+++ magics++-2.28.0/test/coast.py
-@@ -1,5 +1,6 @@
+--- magics++-2.29.2.orig/test/coast.py
++++ magics++-2.29.2/test/coast.py
+@@ -8,6 +8,7 @@
+ 
  # importing Magics module
  
 +from __future__ import print_function
  from Magics.macro import *
  
  
-Index: magics++-2.28.0/test/grib.py
+Index: magics++-2.29.2/test/grib.py
 ===================================================================
---- magics++-2.28.0.orig/test/grib.py
-+++ magics++-2.28.0/test/grib.py
-@@ -1,5 +1,6 @@
+--- magics++-2.29.2.orig/test/grib.py
++++ magics++-2.29.2/test/grib.py
+@@ -8,6 +8,7 @@
+ 
  # importing Magics module
  
 +from __future__ import print_function
  from Magics.macro import *
  
  
-@@ -65,7 +66,7 @@ legend = mlegend(
+@@ -73,7 +74,7 @@ legend = mlegend(
  
  # To the plot
  
@@ -1949,10 +2405,10 @@ Index: magics++-2.28.0/test/grib.py
  plot( output,  europe, data, cont, coast, title)
  
  
-Index: magics++-2.28.0/python/Magics/Magics.i.in
+Index: magics++-2.29.2/python/Magics/Magics.i.in
 ===================================================================
---- magics++-2.28.0.orig/python/Magics/Magics.i.in
-+++ magics++-2.28.0/python/Magics/Magics.i.in
+--- magics++-2.29.2.orig/python/Magics/Magics.i.in
++++ magics++-2.29.2/python/Magics/Magics.i.in
 @@ -22,6 +22,18 @@
      int i = 0;
      $1 = (char **) malloc((size+1)*sizeof(char *));
diff --git a/debian/patches/reproducibility.patch b/debian/patches/reproducibility.patch
index 6b6e055..60fd3c7 100644
--- a/debian/patches/reproducibility.patch
+++ b/debian/patches/reproducibility.patch
@@ -7,11 +7,11 @@ Bugs-Debian: https://bugs.debian.org/792824
 Last-Updated: 2016-01-07
 Forwarded: no
 
-Index: magics++-2.28.0/tools/xml2cc_new.pl
+Index: magics++-2.29.2/tools/xml2cc_new.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2cc_new.pl
-+++ magics++-2.28.0/tools/xml2cc_new.pl
-@@ -167,7 +167,6 @@ foreach my $object (keys %{$info->{magic
+--- magics++-2.29.2.orig/tools/xml2cc_new.pl
++++ magics++-2.29.2/tools/xml2cc_new.pl
+@@ -175,7 +175,6 @@ foreach my $object (keys %{$info->{magic
      This file is automatically generated.
      Do Not Edit!
  
@@ -19,7 +19,7 @@ Index: magics++-2.28.0/tools/xml2cc_new.pl
  */
     
  
-@@ -342,7 +341,6 @@ EOF
+@@ -350,7 +349,6 @@ EOF
      This file is automatically generated.
      Do Not Edit!
     
@@ -27,11 +27,11 @@ Index: magics++-2.28.0/tools/xml2cc_new.pl
  */    
  
  #include "$object\Attributes.h"
-Index: magics++-2.28.0/tools/xml2cc.pl
+Index: magics++-2.29.2/tools/xml2cc.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2cc.pl
-+++ magics++-2.28.0/tools/xml2cc.pl
-@@ -3,6 +3,11 @@
+--- magics++-2.29.2.orig/tools/xml2cc.pl
++++ magics++-2.29.2/tools/xml2cc.pl
+@@ -11,6 +11,11 @@
  
  use XML::Parser;
  use Time::localtime;
@@ -43,7 +43,7 @@ Index: magics++-2.28.0/tools/xml2cc.pl
  
  my $file = shift;
  my $dir = shift;
-@@ -152,7 +157,7 @@ EOF
+@@ -160,7 +165,7 @@ EOF
      my $includes = {};
      my @impl=split(/\//, $current->{attributes}->{implements});
      my @interfaces = (split(/\//, $current->{attributes}->{interface}), @impl);
@@ -52,11 +52,11 @@ Index: magics++-2.28.0/tools/xml2cc.pl
      {
          
          print "#include \"$i.h\"\n";
-Index: magics++-2.28.0/tools/xml2mv.pl
+Index: magics++-2.29.2/tools/xml2mv.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2mv.pl
-+++ magics++-2.28.0/tools/xml2mv.pl
-@@ -3,9 +3,12 @@
+--- magics++-2.29.2.orig/tools/xml2mv.pl
++++ magics++-2.29.2/tools/xml2mv.pl
+@@ -11,9 +11,12 @@
  
  use XML::Parser;
  use Data::Dumper;
@@ -70,7 +70,7 @@ Index: magics++-2.28.0/tools/xml2mv.pl
  my $file = shift;
  my $dir = shift;
  my $Author="MagicsTeam";
-@@ -182,7 +185,7 @@ my $includes = {};
+@@ -190,7 +193,7 @@ my $includes = {};
         $includes->{$to} = "find" unless $basetype{$to} || $to eq 'Colour' ;
      }
      
diff --git a/debian/patches/series b/debian/patches/series
index e5de3df..4b600a5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,6 +5,4 @@ reproducibility.patch
 pkgconfig-fix.patch
 cmake-config.patch
 unique-ptr.patch
-compile-fixes.patch
-g++-6.patch
 numpy-fixes.patch
diff --git a/debian/patches/soname-version.patch b/debian/patches/soname-version.patch
index 6a6aa83..5fbc72b 100644
--- a/debian/patches/soname-version.patch
+++ b/debian/patches/soname-version.patch
@@ -3,10 +3,10 @@ Description: Add versioned soname for Debian.
 Forwarded: no
 Last-Updated: 2015-06-19
 
-Index: magics++-2.28.0/src/CMakeLists.txt
+Index: magics++-2.29.2/src/CMakeLists.txt
 ===================================================================
---- magics++-2.28.0.orig/src/CMakeLists.txt
-+++ magics++-2.28.0/src/CMakeLists.txt
+--- magics++-2.29.2.orig/src/CMakeLists.txt
++++ magics++-2.29.2/src/CMakeLists.txt
 @@ -122,6 +122,9 @@ ecbuild_add_library( TARGET    MagPlus
                          ${common_templates}
                       DEFINITIONS
@@ -36,10 +36,10 @@ Index: magics++-2.28.0/src/CMakeLists.txt
                       TYPE        SHARED )
  
  if ( BUILD_SHARED_LIBS STREQUAL "BOTH" )
-Index: magics++-2.28.0/cmake/ecbuild_add_library.cmake
+Index: magics++-2.29.2/cmake/ecbuild_add_library.cmake
 ===================================================================
---- magics++-2.28.0.orig/cmake/ecbuild_add_library.cmake
-+++ magics++-2.28.0/cmake/ecbuild_add_library.cmake
+--- magics++-2.29.2.orig/cmake/ecbuild_add_library.cmake
++++ magics++-2.29.2/cmake/ecbuild_add_library.cmake
 @@ -148,7 +148,7 @@
  function( ecbuild_add_library_impl )
  
diff --git a/debian/patches/terralib.patch b/debian/patches/terralib.patch
index b6d18ec..4577f96 100644
--- a/debian/patches/terralib.patch
+++ b/debian/patches/terralib.patch
@@ -1,12 +1,12 @@
 Author: Alastair McKinstry <mckinstry at debian.org>
 Description: Add Debians libterralib, rather than built-in version
-Last-Updated: 2015-06-19
+Last-Updated: 2016-07-08
 Forwarded: not-needed
 
-Index: magics++-2.28.0/src/CMakeLists.txt
+Index: magics++-2.29.2/src/CMakeLists.txt
 ===================================================================
---- magics++-2.28.0.orig/src/CMakeLists.txt
-+++ magics++-2.28.0/src/CMakeLists.txt
+--- magics++-2.29.2.orig/src/CMakeLists.txt
++++ magics++-2.29.2/src/CMakeLists.txt
 @@ -92,7 +92,6 @@ add_subdirectory( web )
  add_subdirectory( visualisers )
  add_subdirectory( drivers )
@@ -31,17 +31,16 @@ Index: magics++-2.28.0/src/CMakeLists.txt
                          ${odb_srcs}
                       TEMPLATES
                          ${common_templates}
-@@ -187,9 +184,6 @@ if( metview )
+@@ -187,8 +184,6 @@ if( metview )
                          ${CMAKE_CURRENT_SOURCE_DIR}/visualisers
                          ${CMAKE_CURRENT_SOURCE_DIR}/drivers
                          ${CMAKE_CURRENT_SOURCE_DIR}/decoders
 -                        ${CMAKE_CURRENT_SOURCE_DIR}/terralib
--                        ${CMAKE_CURRENT_SOURCE_DIR}/terralib/kernel
--                        ${CMAKE_CURRENT_SOURCE_DIR}/terralib/utils 
+-                        ${CMAKE_CURRENT_SOURCE_DIR}/terralib/kernel 
                          ${CMAKE_CURRENT_SOURCE_DIR}/libMagWrapper )
    
  
-@@ -229,18 +223,6 @@ if( metview )
+@@ -228,16 +223,6 @@ if( metview )
                   QtDriverAttributes.h)
     endif()
  
@@ -52,8 +51,6 @@ Index: magics++-2.28.0/src/CMakeLists.txt
 -				   terralib/kernel/TeSingleton.h 
 -				   terralib/kernel/TeDatum.h 
 -				   terralib/kernel/TeUtils.h
--				   terralib/kernel/TeProgress.h
--				   terralib/kernel/TeProgressBase.h
 -				   
 -				   
 -				   DESTINATION ${INSTALL_INCLUDE_DIR})
diff --git a/debian/patches/unique-ptr.patch b/debian/patches/unique-ptr.patch
index 33e469b..6692488 100644
--- a/debian/patches/unique-ptr.patch
+++ b/debian/patches/unique-ptr.patch
@@ -4,11 +4,11 @@ Description: For G++ 6, we move to c++14, auto_ptr is deprecated.
 Last-Updated: 2016-03-22
 Forwarded: no
 
-Index: magics++-2.28.0/src/basic/ParameterSettings.cc
+Index: magics++-2.29.2/src/basic/ParameterSettings.cc
 ===================================================================
---- magics++-2.28.0.orig/src/basic/ParameterSettings.cc
-+++ magics++-2.28.0/src/basic/ParameterSettings.cc
-@@ -59,7 +59,7 @@ void setAttribute(const vector<string>&
+--- magics++-2.29.2.orig/src/basic/ParameterSettings.cc
++++ magics++-2.29.2/src/basic/ParameterSettings.cc
+@@ -51,7 +51,7 @@ void setAttribute(const vector<string>&
  	}
  }
  
@@ -17,7 +17,7 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.cc
  {
  	vector<string> keys;	
  	buildkeys(roots, name, keys);
-@@ -70,7 +70,7 @@ void setAttribute(const vector<string>&
+@@ -62,7 +62,7 @@ void setAttribute(const vector<string>&
  		val = params.find(*key);
  		if ( val == params.end() ) continue;
  		MagLog::debug() << "Parameter [" << name << "] set to " << val->second << endl;
@@ -26,11 +26,11 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.cc
  	}
  }
  
-Index: magics++-2.28.0/src/basic/ParameterSettings.h
+Index: magics++-2.29.2/src/basic/ParameterSettings.h
 ===================================================================
---- magics++-2.28.0.orig/src/basic/ParameterSettings.h
-+++ magics++-2.28.0/src/basic/ParameterSettings.h
-@@ -32,10 +32,10 @@
+--- magics++-2.29.2.orig/src/basic/ParameterSettings.h
++++ magics++-2.29.2/src/basic/ParameterSettings.h
+@@ -24,10 +24,10 @@
  #include <Colour.h>
  
  void buildkeys(const vector<string>& roots, const string&, vector<string>& keys);
@@ -43,7 +43,7 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.h
  {
  	try{
  		T* new_object = MagTranslator<string, T>()(value);
-@@ -45,7 +45,7 @@ void setMember(const string& value, auto
+@@ -37,7 +37,7 @@ void setMember(const string& value, auto
              MagLog::dev()<< "OK" << endl;
              return;
          }
@@ -52,7 +52,7 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.h
          
          
  	}
-@@ -56,7 +56,7 @@ void setMember(const string& value, auto
+@@ -48,7 +48,7 @@ void setMember(const string& value, auto
  }
  
  template <class T>
@@ -61,7 +61,7 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.h
  {
  	try {
  		T* new_object = MagTranslator<string, T>()(node);
-@@ -71,7 +71,7 @@ bool acceptNode(const string& node, auto
+@@ -63,7 +63,7 @@ bool acceptNode(const string& node, auto
  }
  
  template <class T>
@@ -70,7 +70,7 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.h
  {	
  	vector<string> keys;
  	buildkeys(roots, name, keys);
-@@ -87,7 +87,7 @@ void setMember(const vector<string>& roo
+@@ -79,7 +79,7 @@ void setMember(const vector<string>& roo
                  object->set(params);
                  return;
              }
@@ -79,11 +79,11 @@ Index: magics++-2.28.0/src/basic/ParameterSettings.h
  			MagLog::debug() << "Parameter [" << name << "] set to " << val->second << endl;
  		}
  		catch (...) {
-Index: magics++-2.28.0/src/decoders/GribDecoder.cc
+Index: magics++-2.29.2/src/decoders/GribDecoder.cc
 ===================================================================
---- magics++-2.28.0.orig/src/decoders/GribDecoder.cc
-+++ magics++-2.28.0/src/decoders/GribDecoder.cc
-@@ -97,7 +97,7 @@ void GribDecoder::set(const GribLoop& lo
+--- magics++-2.29.2.orig/src/decoders/GribDecoder.cc
++++ magics++-2.29.2/src/decoders/GribDecoder.cc
+@@ -90,7 +90,7 @@ void GribDecoder::set(const GribLoop& lo
      index_           = loop.uniqueId_;
      interpolation_method_ = loop.interpolation_method_;
      missing_fill_count_ = loop.missing_fill_count_;
@@ -92,7 +92,7 @@ Index: magics++-2.28.0/src/decoders/GribDecoder.cc
      internalIndex_ = index;
  }
  
-@@ -1582,7 +1582,7 @@ void GribDecoder::visit(MetaDataCollecto
+@@ -1584,7 +1584,7 @@ void GribDecoder::visit(MetaDataCollecto
                      string representation = getString("typeOfGrid");
                      try
                      {
@@ -101,11 +101,11 @@ Index: magics++-2.28.0/src/decoders/GribDecoder.cc
                          interpretor_->scaling(*this, scaling, offset,oriUnits,derivedUnits);
                          if(scaling==1 && offset == 0)
                          {
-Index: magics++-2.28.0/src/decoders/TitleTemplate.cc
+Index: magics++-2.29.2/src/decoders/TitleTemplate.cc
 ===================================================================
---- magics++-2.28.0.orig/src/decoders/TitleTemplate.cc
-+++ magics++-2.28.0/src/decoders/TitleTemplate.cc
-@@ -179,7 +179,7 @@ bool TitleTemplate::verify(const GribDec
+--- magics++-2.29.2.orig/src/decoders/TitleTemplate.cc
++++ magics++-2.29.2/src/decoders/TitleTemplate.cc
+@@ -171,7 +171,7 @@ bool TitleTemplate::verify(const GribDec
  //#ifdef MAGICS_EXCEPTION
  		try{
  			MagLog::debug() << "Try  to create the MatchCriteria for " << criter->first << "\n";
@@ -114,11 +114,11 @@ Index: magics++-2.28.0/src/decoders/TitleTemplate.cc
  			MagLog::debug() << "Found the MatchCriteria for " << criter->first << "\n";
  			if (!(*object).verify(data, criter->first, criter->second)) return false;
  		}
-Index: magics++-2.28.0/src/decoders/TitleTemplate.h
+Index: magics++-2.29.2/src/decoders/TitleTemplate.h
 ===================================================================
---- magics++-2.28.0.orig/src/decoders/TitleTemplate.h
-+++ magics++-2.28.0/src/decoders/TitleTemplate.h
-@@ -130,7 +130,7 @@ public:
+--- magics++-2.29.2.orig/src/decoders/TitleTemplate.h
++++ magics++-2.29.2/src/decoders/TitleTemplate.h
+@@ -122,7 +122,7 @@ public:
  #ifdef MAGICS_EXCEPTION
  			try
  			{
@@ -127,11 +127,11 @@ Index: magics++-2.28.0/src/decoders/TitleTemplate.h
  				(*object)(*(*entry), lines, data);
  			}
  			catch (NoFactoryException& e)
-Index: magics++-2.28.0/src/libMagWrapper/MagPlus.cc
+Index: magics++-2.29.2/src/libMagWrapper/MagPlus.cc
 ===================================================================
---- magics++-2.28.0.orig/src/libMagWrapper/MagPlus.cc
-+++ magics++-2.28.0/src/libMagWrapper/MagPlus.cc
-@@ -548,7 +548,7 @@ bool MagPlus::cartesianGrid(magics::MagR
+--- magics++-2.29.2.orig/src/libMagWrapper/MagPlus.cc
++++ magics++-2.29.2/src/libMagWrapper/MagPlus.cc
+@@ -558,7 +558,7 @@ bool MagPlus::cartesianGrid(magics::MagR
  		haxis->icon("Horizontal Axis", "MAXIS");
  		haxis->label_type_ = xtype;
  
@@ -140,7 +140,7 @@ Index: magics++-2.28.0/src/libMagWrapper/MagPlus.cc
  		top()->push_back(haxis);
  	}
  
-@@ -584,7 +584,7 @@ bool MagPlus::cartesianGrid(magics::MagR
+@@ -594,7 +594,7 @@ bool MagPlus::cartesianGrid(magics::MagR
  		VerticalAxis* vaxis = new VerticalAxis();
  		vaxis->icon("Vertical Axis", "MAXIS");
  		vaxis->label_type_ = ytype;
@@ -149,7 +149,7 @@ Index: magics++-2.28.0/src/libMagWrapper/MagPlus.cc
  		top()->push_back(vaxis);
  
  	}
-@@ -1392,7 +1392,7 @@ bool MagPlus::symbol(magics::MagRequest&
+@@ -1402,7 +1402,7 @@ bool MagPlus::symbol(magics::MagRequest&
  
      FortranAutomaticLegendVisitor* node = new FortranAutomaticLegendVisitor();
      		LegendMethod* method = new ContinuousLegendMethod();
@@ -158,11 +158,11 @@ Index: magics++-2.28.0/src/libMagWrapper/MagPlus.cc
      		node->getReady();
      		//top()->legend(node);
  	if ( geographical_ ) {
-Index: magics++-2.28.0/src/magics.h
+Index: magics++-2.29.2/src/magics.h
 ===================================================================
---- magics++-2.28.0.orig/src/magics.h
-+++ magics++-2.28.0/src/magics.h
-@@ -115,7 +115,7 @@ using std::pair;
+--- magics++-2.29.2.orig/src/magics.h
++++ magics++-2.29.2/src/magics.h
+@@ -106,7 +106,7 @@ using std::pair;
  //using std::list;
  using std::map;
  using std::set;
@@ -171,11 +171,11 @@ Index: magics++-2.28.0/src/magics.h
  
  #include <exception>
  
-Index: magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
+Index: magics++-2.29.2/src/visualisers/AutomaticContourMethod.h
 ===================================================================
---- magics++-2.28.0.orig/src/visualisers/AutomaticContourMethod.h
-+++ magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
-@@ -236,7 +236,7 @@ public:
+--- magics++-2.29.2.orig/src/visualisers/AutomaticContourMethod.h
++++ magics++-2.29.2/src/visualisers/AutomaticContourMethod.h
+@@ -228,7 +228,7 @@ public:
              //SampleContourMethod *am = static_cast < SampleContourMethod *> (MagTranslator<string, ContourMethod >()("sampling"));
              SampleContourMethod *am =new  SampleContourMethod();
  
@@ -184,7 +184,7 @@ Index: magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
  
              pSampleContourMethod->setX (nSampleX);
              pSampleContourMethod->setY (nSampleY);
-@@ -253,7 +253,7 @@ public:
+@@ -245,7 +245,7 @@ public:
          // data, because the sub-sampling method (above) uses no interpolation.
          if ((nSampleX > 1) && (nSampleY > 1))   {
              ContourMethod* cm = MagTranslator<string, ContourMethod >()("linear");
@@ -193,7 +193,7 @@ Index: magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
  
              pMatrixHandler = pContourMethod->handler(matrix, owner);
  
-@@ -263,7 +263,7 @@ public:
+@@ -255,7 +255,7 @@ public:
                   data.hasMissingValues())
          {
              ContourMethod* cm = MagTranslator<string, ContourMethod >()("linear");
@@ -202,7 +202,7 @@ Index: magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
  
              pMatrixHandler = pContourMethod->handler(matrix, owner);
  
-@@ -274,7 +274,7 @@ public:
+@@ -266,7 +266,7 @@ public:
          else
          {
              Akima760Method *am = static_cast < Akima760Method *> (MagTranslator<string, ContourMethod >()("akima760"));
@@ -211,11 +211,11 @@ Index: magics++-2.28.0/src/visualisers/AutomaticContourMethod.h
  
              pAkima760Method->resolutionX_ = (fContourResolutionX);
              pAkima760Method->resolutionY_ =  (fContourResolutionY);
-Index: magics++-2.28.0/src/visualisers/CalculateColourTechnique.cc
+Index: magics++-2.29.2/src/visualisers/CalculateColourTechnique.cc
 ===================================================================
---- magics++-2.28.0.orig/src/visualisers/CalculateColourTechnique.cc
-+++ magics++-2.28.0/src/visualisers/CalculateColourTechnique.cc
-@@ -60,8 +60,8 @@ void CalculateColourTechnique::print(ost
+--- magics++-2.29.2.orig/src/visualisers/CalculateColourTechnique.cc
++++ magics++-2.29.2/src/visualisers/CalculateColourTechnique.cc
+@@ -52,8 +52,8 @@ void CalculateColourTechnique::print(ost
  
  void CalculateColourTechnique::set(const ColourTechniqueInterface& attributes)
  {
@@ -226,11 +226,11 @@ Index: magics++-2.28.0/src/visualisers/CalculateColourTechnique.cc
  	direction_ = attributes.getDirection();
  }
  
-Index: magics++-2.28.0/src/visualisers/LabelPlotting.cc
+Index: magics++-2.29.2/src/visualisers/LabelPlotting.cc
 ===================================================================
---- magics++-2.28.0.orig/src/visualisers/LabelPlotting.cc
-+++ magics++-2.28.0/src/visualisers/LabelPlotting.cc
-@@ -49,7 +49,7 @@ void LabelPlotting::prepare(NoGridPlotti
+--- magics++-2.29.2.orig/src/visualisers/LabelPlotting.cc
++++ magics++-2.29.2/src/visualisers/LabelPlotting.cc
+@@ -41,7 +41,7 @@ void LabelPlotting::prepare(NoGridPlotti
  	
  	if ( *colour_ == "UNDEFINED" ) {
  
@@ -239,11 +239,11 @@ Index: magics++-2.28.0/src/visualisers/LabelPlotting.cc
  	}
  	
  	if ( longitudes_.empty() )
-Index: magics++-2.28.0/tools/xml2cc.pl
+Index: magics++-2.29.2/tools/xml2cc.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2cc.pl
-+++ magics++-2.28.0/tools/xml2cc.pl
-@@ -292,7 +292,7 @@ EOF
+--- magics++-2.29.2.orig/tools/xml2cc.pl
++++ magics++-2.29.2/tools/xml2cc.pl
+@@ -300,7 +300,7 @@ EOF
      {
          print <<EOF;   
  	void set$method($to* $value) 
@@ -252,7 +252,7 @@ Index: magics++-2.28.0/tools/xml2cc.pl
  	const $to&  get$method() const 
  		{ return *$member\_; }
       
-@@ -334,7 +334,7 @@ EOF
+@@ -342,7 +342,7 @@ EOF
          }
          else 
          {
@@ -261,10 +261,10 @@ Index: magics++-2.28.0/tools/xml2cc.pl
          }
      }
  
-Index: magics++-2.28.0/tools/xml2cc.pl.workshop
+Index: magics++-2.29.2/tools/xml2cc.pl.workshop
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2cc.pl.workshop
-+++ magics++-2.28.0/tools/xml2cc.pl.workshop
+--- magics++-2.29.2.orig/tools/xml2cc.pl.workshop
++++ magics++-2.29.2/tools/xml2cc.pl.workshop
 @@ -315,7 +315,7 @@ EOF
      {
          print <<EOF;   
@@ -283,11 +283,11 @@ Index: magics++-2.28.0/tools/xml2cc.pl.workshop
          }
      }
  
-Index: magics++-2.28.0/tools/xml2cc_new.pl
+Index: magics++-2.29.2/tools/xml2cc_new.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2cc_new.pl
-+++ magics++-2.28.0/tools/xml2cc_new.pl
-@@ -296,7 +296,7 @@ EOF
+--- magics++-2.29.2.orig/tools/xml2cc_new.pl
++++ magics++-2.29.2/tools/xml2cc_new.pl
+@@ -304,7 +304,7 @@ EOF
          }
          else 
          {
@@ -296,7 +296,7 @@ Index: magics++-2.28.0/tools/xml2cc_new.pl
          }
      }
  
-@@ -541,7 +541,7 @@ EOF
+@@ -549,7 +549,7 @@ EOF
          }
          else 
          {
@@ -305,11 +305,11 @@ Index: magics++-2.28.0/tools/xml2cc_new.pl
          }
         
          print "";
-Index: magics++-2.28.0/tools/xml2mv.pl
+Index: magics++-2.29.2/tools/xml2mv.pl
 ===================================================================
---- magics++-2.28.0.orig/tools/xml2mv.pl
-+++ magics++-2.28.0/tools/xml2mv.pl
-@@ -442,7 +442,7 @@ EOF
+--- magics++-2.29.2.orig/tools/xml2mv.pl
++++ magics++-2.29.2/tools/xml2mv.pl
+@@ -450,7 +450,7 @@ EOF
              {
  				
                  print "\t\t\tstring $member\_s = request(\"$name\");\n";
@@ -318,7 +318,7 @@ Index: magics++-2.28.0/tools/xml2mv.pl
              }
              else
              {
-@@ -469,7 +469,7 @@ EOF
+@@ -477,7 +477,7 @@ EOF
                   $arg = "(request.countValues(\"$name\") ? (string) request(\"$name\") : \"$mv_default\")";
                  
                  print "\t\tstring $member\_s = $arg;\n";
@@ -327,7 +327,7 @@ Index: magics++-2.28.0/tools/xml2mv.pl
  			}
              else
              {
-@@ -506,7 +506,7 @@ EOF
+@@ -514,7 +514,7 @@ EOF
                  print "\t\t\t$member\_w = SimpleFactory<$wrapper_t>::create(\"$mv_default\");\n";
  			    print "\t\t}\n";
                  print "\t\t$member\_w->set(request);\n";

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/magics.git



More information about the debian-science-commits mailing list