[magics] 49/63: refresh patches

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Mar 24 10:41:54 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 b920952d97e488b50fe3c7e5b073c5cf17cc3348
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Mon Nov 28 20:02:40 2016 +0000

    refresh patches
---
 debian/patches/cmake-config.patch    |    6 +-
 debian/patches/numpy-fixes.patch     |   12 +-
 debian/patches/pkgconfig-fix.patch   |   14 +-
 debian/patches/python3.patch         | 1051 +++++-----------------------------
 debian/patches/reproducibility.patch |   12 +-
 debian/patches/rm-ksh.patch          |   18 +-
 debian/patches/soname-version.patch  |   12 +-
 debian/patches/terralib.patch        |    6 +-
 debian/patches/unique-ptr.patch      |   78 +--
 9 files changed, 214 insertions(+), 995 deletions(-)

diff --git a/debian/patches/cmake-config.patch b/debian/patches/cmake-config.patch
index b9fc1c9..fdc2708 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.29.6/cmake/project-config.cmake.in
+Index: magics++-2.30.0/cmake/project-config.cmake.in
 ===================================================================
---- magics++-2.29.6.orig/cmake/project-config.cmake.in
-+++ magics++-2.29.6/cmake/project-config.cmake.in
+--- magics++-2.30.0.orig/cmake/project-config.cmake.in
++++ magics++-2.30.0/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/numpy-fixes.patch b/debian/patches/numpy-fixes.patch
index fa453c6..29ed977 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-10-29
 Forwarded: no
 
-Index: magics++-2.29.6/python/numpy.i
+Index: magics++-2.30.0/python/numpy.i
 ===================================================================
---- magics++-2.29.6.orig/python/numpy.i
-+++ magics++-2.29.6/python/numpy.i
+--- magics++-2.30.0.orig/python/numpy.i
++++ magics++-2.30.0/python/numpy.i
 @@ -1,11 +1,46 @@
  /* -*- C -*-  (not really, but good for syntax highlighting) */
 +
@@ -2482,10 +2482,10 @@ Index: magics++-2.29.6/python/numpy.i
 +#endif
  
  #endif /* SWIGPYTHON */
-Index: magics++-2.29.6/python/Magics.i.in
+Index: magics++-2.30.0/python/Magics.i.in
 ===================================================================
---- magics++-2.29.6.orig/python/Magics.i.in
-+++ magics++-2.29.6/python/Magics.i.in
+--- magics++-2.30.0.orig/python/Magics.i.in
++++ magics++-2.30.0/python/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 d33abc6..6cacf1e 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.29.6/cmake/ecbuild_pkgconfig.cmake
+Index: magics++-2.30.0/cmake/ecbuild_pkgconfig.cmake
 ===================================================================
---- magics++-2.29.6.orig/cmake/ecbuild_pkgconfig.cmake
-+++ magics++-2.29.6/cmake/ecbuild_pkgconfig.cmake
+--- magics++-2.30.0.orig/cmake/ecbuild_pkgconfig.cmake
++++ magics++-2.30.0/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.29.6/cmake/ecbuild_pkgconfig.cmake
    foreach( _lib ${_libraries})
  
      unset( _location )
-Index: magics++-2.29.6/CMakeLists.txt
+Index: magics++-2.30.0/CMakeLists.txt
 ===================================================================
---- magics++-2.29.6.orig/CMakeLists.txt
-+++ magics++-2.29.6/CMakeLists.txt
-@@ -335,7 +335,12 @@ ecbuild_add_resources( TARGET internal
+--- magics++-2.30.0.orig/CMakeLists.txt
++++ magics++-2.30.0/CMakeLists.txt
+@@ -337,7 +337,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 33cab19..6d1ab39 100644
--- a/debian/patches/python3.patch
+++ b/debian/patches/python3.patch
@@ -3,12 +3,12 @@ Description: python2,3 compatability code
 Last-Updated: 2016-10-29
 Forwarded: no
 
-Index: magics++-2.29.6/tools/axis2doc.py
+Index: magics++-2.30.0/tools/axis2doc.py
 ===================================================================
---- magics++-2.29.6.orig/tools/axis2doc.py
-+++ magics++-2.29.6/tools/axis2doc.py
+--- magics++-2.30.0.orig/tools/axis2doc.py
++++ magics++-2.30.0/tools/axis2doc.py
 @@ -1,12 +1,13 @@
- #!/usr/bin/python
+ #!/usr/bin/env python 
  # (C) Copyright 1996-2016 ECMWF.
 -# 
 +#
@@ -260,10 +260,10 @@ Index: magics++-2.29.6/tools/axis2doc.py
  
 -createAction("wind",  "Wind", ["wind.xml"]) 
 +createAction("wind",  "Wind", ["wind.xml"])
-Index: magics++-2.29.6/tools/beau.py
+Index: magics++-2.30.0/tools/beau.py
 ===================================================================
---- magics++-2.29.6.orig/tools/beau.py
-+++ magics++-2.29.6/tools/beau.py
+--- magics++-2.30.0.orig/tools/beau.py
++++ magics++-2.30.0/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.
@@ -280,10 +280,10 @@ Index: magics++-2.29.6/tools/beau.py
 +print (pretty_xml_as_string)
  
  
-Index: magics++-2.29.6/tools/xml2doc.py
+Index: magics++-2.30.0/tools/xml2doc.py
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2doc.py
-+++ magics++-2.29.6/tools/xml2doc.py
+--- magics++-2.30.0.orig/tools/xml2doc.py
++++ magics++-2.30.0/tools/xml2doc.py
 @@ -1,20 +1,17 @@
  # (C) Copyright 1996-2016 ECMWF.
 -# 
@@ -408,12 +408,12 @@ Index: magics++-2.29.6/tools/xml2doc.py
  				s = self.types[param["type"]](self, param)
  				definition.write(s)
  			definition.write( "</font></tbody>\n")
-Index: magics++-2.29.6/tools/xml2html.py
+Index: magics++-2.30.0/tools/xml2html.py
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2html.py
-+++ magics++-2.29.6/tools/xml2html.py
+--- magics++-2.30.0.orig/tools/xml2html.py
++++ magics++-2.30.0/tools/xml2html.py
 @@ -1,12 +1,13 @@
- #!/usr/bin/python
+ #!/usr/bin/env python 
  # (C) Copyright 1996-2016 ECMWF.
 -# 
 +#
@@ -610,12 +610,12 @@ Index: magics++-2.29.6/tools/xml2html.py
  f = open('coast.json', "w")
  f.write(json.dumps(magics, indent=1))
 -
-Index: magics++-2.29.6/tools/xml2odt.py
+Index: magics++-2.30.0/tools/xml2odt.py
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2odt.py
-+++ magics++-2.29.6/tools/xml2odt.py
+--- magics++-2.30.0.orig/tools/xml2odt.py
++++ magics++-2.30.0/tools/xml2odt.py
 @@ -1,12 +1,12 @@
- #!/usr/bin/python
+ #!/usr/bin/env python 
  # (C) Copyright 1996-2016 ECMWF.
 -# 
 +#
@@ -682,10 +682,10 @@ Index: magics++-2.29.6/tools/xml2odt.py
  
  
  object = ObjectHandler()
-Index: magics++-2.29.6/tools/xml2split.py
+Index: magics++-2.30.0/tools/xml2split.py
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2split.py
-+++ magics++-2.29.6/tools/xml2split.py
+--- magics++-2.30.0.orig/tools/xml2split.py
++++ magics++-2.30.0/tools/xml2split.py
 @@ -7,7 +7,7 @@
  # does it submit to any jurisdiction.
  
@@ -720,12 +720,12 @@ Index: magics++-2.29.6/tools/xml2split.py
  		if ( self.open_file == 0):
  			return
  
-Index: magics++-2.29.6/tools/xml2mv.py
+Index: magics++-2.30.0/tools/xml2mv.py
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2mv.py
-+++ magics++-2.29.6/tools/xml2mv.py
+--- magics++-2.30.0.orig/tools/xml2mv.py
++++ magics++-2.30.0/tools/xml2mv.py
 @@ -1,12 +1,13 @@
- #!/usr/bin/python
+ #!/usr/bin/env python 
  # (C) Copyright 1996-2016 ECMWF.
 -# 
 +#
@@ -976,745 +976,107 @@ Index: magics++-2.29.6/tools/xml2mv.py
  saxparser.parse(datasource)
 -print "DONE"
 +print ("DONE")
-Index: magics++-2.29.6/python/Magics/macro.py
+Index: magics++-2.30.0/python/Magics/macro.py
 ===================================================================
---- magics++-2.29.6.orig/python/Magics/macro.py
-+++ magics++-2.29.6/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.
+--- magics++-2.30.0.orig/python/Magics/macro.py
++++ magics++-2.30.0/python/Magics/macro.py
+@@ -6,6 +6,9 @@
+ # 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
+@@ -69,7 +72,7 @@ class Action(object):
+         return x
  
-+
- class Context(object):
--	def __init__(self):
--		self.tmp = []
--		pass
-+    def __init__(self):
-+        self.tmp = []
-+        pass
- 
- global context
--context  = Context()
--
--actions={
--	"mobs": "pobs",
--	"mcoast": "pcoast",
--	"pcoast": "pcoast",
--	"mtext": "ptext",
--	"ptext": "ptext",
--	"psymb": "psymb",
--	"msymb": "psymb",
--	"pcont": "pcont",
--	"mcont": "pcont",
--	"pgeo": "pgeo",
--	"mgeojson": "pgeojson",
--	"mgeo": "pgeo",
--	"mlegend": "",
--	"plegend": "",
--	"mgrib": "pgrib",
--	"pgrib": "pgrib",
--	"mwind": "pwind",
--	"pwind": "pwind",
--	"mgraph": "pgraph",
--	"pgraph": "pgraph",
--	"maxis": "paxis",
--	"paxis": "paxis",
--	"minput": "pinput",
--	"mtable": "ptable",
--	"ptable": "ptable",
--	"pboxplot": "pboxplot",
--	"mboxplot": "pboxplot",
--	"pinput": "pinput"
--	}
--
-+context = Context()
- 
-+actions = {
-+    "mobs": "pobs",
-+    "mcoast": "pcoast",
-+    "pcoast": "pcoast",
-+    "mtext": "ptext",
-+    "ptext": "ptext",
-+    "psymb": "psymb",
-+    "msymb": "psymb",
-+    "pcont": "pcont",
-+    "mcont": "pcont",
-+    "pgeo": "pgeo",
-+    "mgeojson": "pgeojson",
-+    "mgeo": "pgeo",
-+    "mlegend": "",
-+    "plegend": "",
-+    "mgrib": "pgrib",
-+    "pgrib": "pgrib",
-+    "mwind": "pwind",
-+    "pwind": "pwind",
-+    "mgraph": "pgraph",
-+    "pgraph": "pgraph",
-+    "maxis": "paxis",
-+    "paxis": "paxis",
-+    "minput": "pinput",
-+    "mtable": "ptable",
-+    "ptable": "ptable",
-+    "pboxplot": "pboxplot",
-+    "mboxplot": "pboxplot",
-+    "pinput": "pinput"
-+    }
- 
- 
- class Action(object):
--	def __init__(self, verb, action, html, args):
--		self.verb = verb
--		self.action = action
--		self.args = args
--		if ( html == "") :
--			self.html = verb 
--		else :			
--			self.html = "<a href=/wiki/display/MAGP/%s target='_blank'>%s</a>" % (html, verb)  
--
--	def __repr__(self):
--		x = ""
--		for key in self.args.keys():
--			x = x + " %s = '%s'\n" % (key, self.args[key])
--		return x
--
--	def inspect(self):
--		print self
--
--	def quote(self, v):
--		return "\"" + v + "\""
--
--	def tohtml(self, file):
--		sep=""
--		val="%s("%self.html
--
--		for key in self.args.keys():
--			if isinstance(self.args[key], str):
--				if key == 'odb_data':
--					Magics.setc('odb_filename', self.args[key])
--				else:
--					val+= '%s%s = "%s"'%(sep, key, self.args[key])
--			elif isinstance(self.args[key], int):
--				val +=  '%s%s = %d'%(sep, key, self.args[key])
--			elif isinstance(self.args[key], float):
--				val += '%s%s = %0.2f'%(sep, key, self.args[key])
--			elif isinstance(self.args[key], list) :
--				if isinstance (self.args[key][0], str):
--				   vval = ""
--				   vsep = ""
--				   if (len(self.args[key]) < 5 ):
--			   			for v in self.args[key]:
--			   				vval += vsep + self.quote(v)
--			   				vsep = ", "
--				   else :
--						vval = self.quote(self.args[key][0]) + ", " + self.quote(self.args[key][1]) + ",...," + self.quote(self.args[key][-2]) +  ", " + self.quote(self.args[key][-1]) 
--				   vval += ""
--				   val+= '%s%s = [%s]'%(sep, key, vval)
--				elif isinstance(self.args[key][0], int):
--				   vval = ""
--				   vsep = ""
--				   if (len(self.args[key]) < 5 ):
--			   			for v in self.args[key]:
--			   				vval += vsep + ("%df"%v)
--			   				vsep = ", "
--				   else :
--							vval = ("%d"%self.args[key][0]) + ", " + ("%d"%self.args[key][1]) + ",...," + ("%d"%self.args[key][-2]) +  ", " + ("%d"%self.args[key][-1]) 
--				   vval += ""
--				   val+= '%s%s = %s'%(sep, key, vval)
--				elif isinstance(self.args[key][0], float):
--				   vval = ""
--				   vsep = ""
--				   if (len(self.args[key]) < 5 ):
--			   			for v in self.args[key]:
--			   				vval += vsep + ("%0.2f"%v)
--			   				vsep = ", "
--				   else :
--						vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) +  ", " + ("%0.2f"%self.args[key][-1]) 
--				
--				   vval += ""
--				   val+= '%s%s = [%s]'%(sep, key, vval)
--			elif isinstance(self.args[key], numpy.ndarray) :
--				type = self.args[key].dtype
--				dim  = len(self.args[key].shape)
--				if isinstance(self.args[key][0], int):
--					if (dim == 2) :
--				   		print "pset2i" 
--					else :
--				   		print "pset1i" 
--				elif ( type == 'float64' or type == 'float32') :
--					if (dim == 2) :
--				   		print "pset2r" 
--					else :
--				   		vval = ""
--				   		vsep = ""
--						if (len(self.args[key]) < 5 ):
--				   			for v in self.args[key]:
--				   				vval += vsep + ("%0.2f"%v)
--				   				vsep = ", "
--						else :
--							vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) +  ", " + ("%0.2f"%self.args[key][-1]) 
--				   		vval += ""
--				   		val+= '%s%s = [%s]'%(sep, key, vval)
--				else :
--					print "type???->", key
--			sep=",\n\t"
--				
--		print >>file, val + ")\n"
--
--	def tomv4(self, file):
--		sep="\t"
--		val="%s,\n"%self.verb.upper()
--
--		for key in self.args.keys():
--			if isinstance(self.args[key], str):
--				if key == 'odb_data':
--					Magics.setc('odb_filename', self.args[key])
--				else:
--					val+= '%s%s = %s'%(sep, key.upper(), self.args[key].upper())
--			elif isinstance(self.args[key], int):
--				val +=  '%s%s = %d'%(sep, key.upper(), self.args[key])
--			elif isinstance(self.args[key], float):
--				val += '%s%s = %0.2f'%(sep, key.upper(), self.args[key])
--			elif isinstance(self.args[key], list) :
--				if isinstance (self.args[key][0], str):
--				   vval = "["
--				   vsep = ""
--				   for v in self.args[key]:
--				   		vval += vsep + v
--				   		vsep = ", "
--				   vval += "]"
--				   val+= '%s%s = %s'%(sep, key.upper(), vval)
--				elif isinstance(self.args[key][0], int):
--				   print "pset1i"
--				elif isinstance(self.args[key][0], float):
--				   print "pset1r" 
--			elif isinstance(self.args[key], numpy.ndarray) :
--				type = self.args[key].dtype
--				dim  = len(self.args[key].shape)
--				if isinstance(self.args[key][0], int):
--					if (dim == 2) :
--				   		print "pset2i" 
--					else :
--				   		print "pset1i" 
--				elif ( type == 'float64' or type == 'float32') :
--					if (dim == 2) :
--				   		print "pset2r" 
--					else :
--				   		vval = "["
--				   		vsep = ""
--				   		for v in self.args[key]:
--				   				vval += vsep + ("%0.2f"%v)
--				   				vsep = ", "
--				   		vval += "]"
--				   		val+= '%s%s = %s'%(sep, key.upper(), vval)
--				   		
--				else :
--					print "type???->", key
--			sep=",\n\t"
--				
--		print >> file, val + "\n"
--
--
--
--
--
--	def tofortran(self, f):
--		if self.action == Magics.new_page :
--			print >> f, '\tcall pnew("page")'
--			return
--		for key in self.args.keys():
--			if isinstance(self.args[key], str):
--				if key == 'odb_data':
--					Magics.setc('odb_filename', self.args[key])
--				else:
--					print >> f, '\tcall psetc("%s", "%s")'%(key, self.args[key])
--			elif isinstance(self.args[key], int):
--				print >>f, '\tcall pseti("%s", %d)'%(key, self.args[key])
--			elif isinstance(self.args[key], float):
--				print >> f, '\tcall psetr("%s", %0.2f)'%(key, self.args[key])
--			elif isinstance(self.args[key], list) :
--				if isinstance (self.args[key][0], str):
--				   nb = 0
--				   for v in self.args[key]:
--				   		nb = max(nb, len(v))
--				   	
--				   val = "(/"
--				   sep = ""
--				   newline = 70
--				   for v in self.args[key]:
--				   		val += sep + self.quote(v.ljust(nb))
--						sep = ", "
--				   		if len(val) > newline  :
--							sep = ",&\n\t\t"
--							newline = newline + 70
--				   val += "/)"
--				   print >>f, '\tcall pset1c("%s", %s, %d)'%(key, val, len(self.args[key]))
--				elif isinstance(self.args[key][0], int):
--				   print "pset1i"
--				elif isinstance(self.args[key][0], float):
--				   	val = "(/"
--				   	sep = ""
--				   	for v in self.args[key]:
--				   		val += sep + ("%0.2f" % v)
--				   		sep = ", "
--				   	val += "/)"
--				   	print >>f, '\tcall pset1r("%s", %s, %d)'%(key, val, len(self.args[key]))
--			elif isinstance(self.args[key], numpy.ndarray) :
--				type = self.args[key].dtype
--				dim  = len(self.args[key].shape)
--				if isinstance(self.args[key][0], int):
--					if (dim == 2) :
--				   		print "pset2i" 
--					else :
--				   		print "pset1i" 
--				elif ( type == 'float64' or type == 'float32') :
--					if (dim == 2) :
--				   		print "pset2r" 
--					else :
--				   		val = "(/"
--				   		sep = ""
--				   		for v in self.args[key]:
--				   			val += sep + ("%0.2f" % v)
--				   			sep = ", "
--				   		val += "/)"
--				   		print >>f, '\tcall pset1r("%s", %s, %d)'%(key, val, len(self.args[key]))
--				elif isinstance(self.args[key][0], int):
--				   		print "pset1r" 
--				else :
--					print "type???->", key
--
--		if self.action != None and actions[self.verb] != "" and actions[self.verb] != "pinput":
--			print >>f, "\tcall %s\n"%actions[self.verb] 
--			for key in self.args.keys():
--				print >>f, "\tcall preset('%s')"%key 
--			print >>f, ""
--
--		else:
--			print >>f, ""
--
--
--	def clean_object(self, obj):
--
--		if type(obj) in (int, float, str, bool, numpy.float64):
--			return obj
--		elif type(obj) == unicode:
--			return str(obj)
--		elif type(obj) in (list, tuple, set, numpy.ndarray):
--			if type(obj[0]) != unicode:
--				return obj
--			obj = list(obj)
--			for i,v in enumerate(obj):
--				obj[i] = self.clean_object(v)
--		elif type(obj) == dict:
--			for i,v in obj.iteritems():
--				obj[i] = self.clean_object(v)
--		else:
--			print "Invalid object in data, converting to string: " 
--			print  type(obj)
--			obj = str(obj) 
--		return obj
--
--
--	def execute(self):
--
--		if ( self.action != Magics.odb) :
--		    self.args = self.clean_object(self.args)
--		for key in self.args.keys():
--			if isinstance(self.args[key], str):
--				if key == 'odb_data':
--					Magics.setc('odb_filename', self.args[key])
--				else:
--					Magics.setc(key, self.args[key])
--			elif isinstance(self.args[key], int):
--				Magics.seti(key, self.args[key])
--			elif isinstance(self.args[key], float):
--				Magics.setr(key, self.args[key])
--			elif isinstance(self.args[key], list) :
--				if isinstance(self.args[key][0], str):
--				   Magics.set1c(key, self.args[key])
--				elif isinstance(self.args[key][0], int):
--				   Magics.set1i(key, numpy.array(self.args[key], dtype='i'))
--				elif isinstance(self.args[key][0], float):
--				   Magics.set1r(key, numpy.array(self.args[key]))
--			elif isinstance(self.args[key], numpy.ndarray) :
--				type = self.args[key].dtype
--				dim  = len(self.args[key].shape)
--				if isinstance(self.args[key][0], int):
--					if (dim == 2) :
--						Magics.set2i(key, self.args[key].copy())
--					else :
--						Magics.set1i(key, self.args[key].copy())
--				elif ( type == 'float64' or type == 'float32') :
--					if (dim == 2) :
--						Magics.set2r(key, self.args[key].copy())
--					else :
--						Magics.set1r(key, self.args[key].copy())
--				else :
--					print "type???->", key
--
--			else:
--				self.args[key].execute(key)
--
--		if self.action != None :
--			if self.action != Magics.new_page :
--				if self.action == Magics.legend :
--					Magics.setc("legend", "on")
--				self.action()
--				if self.action != Magics.obs and self.action != Magics.minput:
--					for key in self.args.keys():
--						Magics.reset(key)
--			else:
--				self.action("page")
-+    def __init__(self, verb, action, html, args):
-+        self.verb = verb
-+        self.action = action
-+        self.args = args
-+        if html == "":
-+            self.html = verb
-+        else:
-+            self.html = "<a href=/wiki/display/MAGP/%s target='_blank'>%s</a>"\
-+                        % (html, verb)
-+
-+    def __repr__(self):
-+        x = ""
-+        for key in list(self.args.keys()):
-+            x = x + " %s = '%s'\n" % (key, self.args[key])
-+        return x
-+
-+    def inspect(self):
+     def inspect(self):
+-        print self
 +        print(self)
-+
-+    def quote(self, v):
-+        return "\"" + v + "\""
-+
-+    def tohtml(self, file):
-+        sep = ""
-+        val = "%s(" % self.html
-+
-+        for key in list(self.args.keys()):
-+            if isinstance(self.args[key], str):
-+                if key == 'odb_data':
-+                    Magics.setc('odb_filename', self.args[key])
-+                else:
-+                    val += '%s%s = "%s"' % (sep, key, self.args[key])
-+            elif isinstance(self.args[key], int):
-+                val += '%s%s = %d' % (sep, key, self.args[key])
-+            elif isinstance(self.args[key], float):
-+                val += '%s%s = %0.2f' % (sep, key, self.args[key])
-+            elif isinstance(self.args[key], list):
-+                if isinstance(self.args[key][0], str):
-+                    vval = ""
-+                    vsep = ""
-+                    if len(self.args[key]) < 5:
-+                        for v in self.args[key]:
-+                            vval += vsep + self.quote(v)
-+                            vsep = ", "
-+                    else:
-+                        vval = self.quote(self.args[key][0]) + ", " + \
-+                               self.quote(self.args[key][1]) + ",...," + \
-+                               self.quote(self.args[key][-2]) + ", " + \
-+                               self.quote(self.args[key][-1])
-+                    vval += ""
-+                    val += '%s%s = [%s]' % (sep, key, vval)
-+                elif isinstance(self.args[key][0], int):
-+                    vval = ""
-+                    vsep = ""
-+                    if len(self.args[key]) < 5:
-+                        for v in self.args[key]:
-+                            vval += vsep + ("%df" % v)
-+                            vsep = ", "
-+                    else:
-+                        vval = ("%d" % self.args[key][0]) + ", " + \
-+                               ("%d" % self.args[key][1]) + ",...," + \
-+                               ("%d" % self.args[key][-2]) + ", " + \
-+                               ("%d" % self.args[key][-1])
-+                    vval += ""
-+                    val += '%s%s = %s' % (sep, key, vval)
-+                elif isinstance(self.args[key][0], float):
-+                    vval = ""
-+                    vsep = ""
-+                    if len(self.args[key]) < 5:
-+                        for v in self.args[key]:
-+                            vval += vsep + ("%0.2f" % v)
-+                            vsep = ", "
-+                    else:
-+                        vval = ("%0.2f" % self.args[key][0]) + ", " + \
-+                               ("%0.2f" % self.args[key][1]) + ",...," + \
-+                               ("%0.2f" % self.args[key][-2]) + ", " + \
-+                               ("%0.2f" % self.args[key][-1])
-+
-+                    vval += ""
-+                    val += '%s%s = [%s]' % (sep, key, vval)
-+            elif isinstance(self.args[key], numpy.ndarray):
-+                type = self.args[key].dtype
-+                dim = len(self.args[key].shape)
-+                if isinstance(self.args[key][0], int):
-+                    if dim == 2:
-+                        print("pset2i")
-+                    else:
-+                        print("pset1i")
-+                elif (type == 'float64' or type == 'float32'):
-+                    if dim == 2:
-+                        print("pset2r")
-+                    else:
-+                        vval = ""
-+                        vsep = ""
-+                        if len(self.args[key]) < 5:
-+                            for v in self.args[key]:
-+                                vval += vsep + ("%0.2f" % v)
-+                                vsep = ", "
-+                        else:
-+                            vval = ("%0.2f" % self.args[key][0]) + ", " + \
-+                                   ("%0.2f" % self.args[key][1]) + ",...," + \
-+                                   ("%0.2f" % self.args[key][-2]) + ", " + \
-+                                   ("%0.2f" % self.args[key][-1])
-+                        vval += ""
-+                        val += '%s%s = [%s]' % (sep, key, vval)
-+                else:
-+                    print("type???->", key)
-+            sep = ",\n\t"
-+
-+        print(val + ")\n", file=file)
-+
-+    def tomv4(self, file):
-+        sep = "\t"
-+        val = "%s,\n" % self.verb.upper()
-+
-+        for key in list(self.args.keys()):
-+            if isinstance(self.args[key], str):
-+                if key == 'odb_data':
-+                    Magics.setc('odb_filename', self.args[key])
-+                else:
-+                    val += '%s%s = %s' % \
-+                           (sep, key.upper(), self.args[key].upper())
-+            elif isinstance(self.args[key], int):
-+                val += '%s%s = %d' % (sep, key.upper(), self.args[key])
-+            elif isinstance(self.args[key], float):
-+                val += '%s%s = %0.2f' % (sep, key.upper(), self.args[key])
-+            elif isinstance(self.args[key], list):
-+                if isinstance(self.args[key][0], str):
-+                    vval = "["
-+                    vsep = ""
-+                    for v in self.args[key]:
-+                        vval += vsep + v
-+                        vsep = ", "
-+                    vval += "]"
-+                    val += '%s%s = %s' % (sep, key.upper(), vval)
-+                elif isinstance(self.args[key][0], int):
-+                    print("pset1i")
-+                elif isinstance(self.args[key][0], float):
-+                    print("pset1r")
-+            elif isinstance(self.args[key], numpy.ndarray):
-+                type = self.args[key].dtype
-+                dim = len(self.args[key].shape)
-+                if isinstance(self.args[key][0], int):
-+                    if dim == 2:
-+                        print("pset2i")
-+                    else:
-+                        print("pset1i")
-+                elif (type == 'float64' or type == 'float32'):
-+                    if dim == 2:
-+                        print("pset2r")
-+                    else:
-+                        vval = "["
-+                        vsep = ""
-+                        for v in self.args[key]:
-+                            vval += vsep + ("%0.2f" % v)
-+                            vsep = ", "
-+                        vval += "]"
-+                        val += '%s%s = %s' % (sep, key.upper(), vval)
-+
-+                else:
-+                    print("type???->", key)
-+            sep = ",\n\t"
-+
-+        print(val + "\n", file=file)
-+
-+    def tofortran(self, f):
-+        if self.action == Magics.new_page:
-+            print('\tcall pnew("page")', file=f)
-+            return
-+        for key in list(self.args.keys()):
-+            if isinstance(self.args[key], str):
-+                if key == 'odb_data':
-+                    Magics.setc('odb_filename', self.args[key])
-+                else:
-+                    print('\tcall psetc("%s", "%s")' % (key, self.args[key]),
-+                          file=f)
-+            elif isinstance(self.args[key], int):
-+                print('\tcall pseti("%s", %d)' % (key, self.args[key]),
-+                      file=f)
-+            elif isinstance(self.args[key], float):
-+                print('\tcall psetr("%s", %0.2f)' % (key, self.args[key]),
-+                      file=f)
-+            elif isinstance(self.args[key], list):
-+                if isinstance(self.args[key][0], str):
-+                    nb = 0
-+                    for v in self.args[key]:
-+                        nb = max(nb, len(v))
-+                    val = "(/"
-+                    sep = ""
-+                    newline = 70
-+                    for v in self.args[key]:
-+                        val += sep + self.quote(v.ljust(nb))
-+                        sep = ", "
-+                        if len(val) > newline:
-+                            sep = ",&\n\t\t"
-+                            newline = newline + 70
-+                    val += "/)"
-+                    print('\tcall pset1c("%s", %s, %d)' %
-+                          (key, val, len(self.args[key])),
-+                          file=f)
-+                elif isinstance(self.args[key][0], int):
-+                    print("pset1i")
-+                elif isinstance(self.args[key][0], float):
-+                    val = "(/"
-+                    sep = ""
-+                    for v in self.args[key]:
-+                        val += sep + ("%0.2f" % v)
-+                        sep = ", "
-+                    val += "/)"
-+                    print('\tcall pset1r("%s", %s, %d)' %
-+                          (key, val, len(self.args[key])),
-+                          file=f)
-+            elif isinstance(self.args[key], numpy.ndarray):
-+                type = self.args[key].dtype
-+                dim = len(self.args[key].shape)
-+                if isinstance(self.args[key][0], int):
-+                    if dim == 2:
-+                        print("pset2i")
-+                    else:
-+                        print("pset1i")
-+                elif (type == 'float64' or type == 'float32'):
-+                    if dim == 2:
-+                        print("pset2r")
-+                    else:
-+                        val = "(/"
-+                        sep = ""
-+                        for v in self.args[key]:
-+                            val += sep + ("%0.2f" % v)
-+                            sep = ", "
-+                        val += "/)"
-+                        print('\tcall pset1r("%s", %s, %d)' %
-+                              (key, val, len(self.args[key])),
-+                              file=f)
-+                elif isinstance(self.args[key][0], int):
-+                    print("pset1r")
-+                else:
-+                    print("type???->", key)
-+
-+        if (self.action is not None) and (actions[self.verb] != "") and \
-+           (actions[self.verb] != "pinput"):
-+            print("\tcall %s\n" % actions[self.verb], file=f)
-+            for key in list(self.args.keys()):
-+                print("\tcall preset('%s')" % key, file=f)
-+            print("", file=f)
-+
-+        else:
-+            print("", file=f)
-+
-+    def clean_object(self, obj):
-+
-+        if type(obj) in (int, float, str, bool, numpy.float64):
-+            return obj
-+        elif type(obj) == unicode:
-+            return str(obj)
-+        elif type(obj) in (list, tuple, set, numpy.ndarray):
-+            if (type(obj[0]) != unicode) and (type(obj[0]) != str):
-+                return obj
-+            obj = list(obj)
-+            for i, v in enumerate(obj):
-+                obj[i] = self.clean_object(v)
-+        elif type(obj) == dict:
-+            for i, v in iteritems(obj):
-+                obj[i] = self.clean_object(v)
-+        else:
-+            print("Invalid object in data, converting to string: ")
-+            print(type(obj))
-+            obj = str(obj)
-+        return obj
-+
-+    def execute(self):
-+
-+        if self.action != Magics.odb:
-+            self.args = self.clean_object(self.args)
-+        for key in list(self.args.keys()):
-+            if isinstance(self.args[key], str):
-+                if key == 'odb_data':
-+                    Magics.setc('odb_filename', self.args[key])
-+                else:
-+                    Magics.setc(key, self.args[key])
-+            elif isinstance(self.args[key], int):
-+                Magics.seti(key, self.args[key])
-+            elif isinstance(self.args[key], float):
-+                Magics.setr(key, self.args[key])
-+            elif isinstance(self.args[key], list):
-+                if isinstance(self.args[key][0], str):
-+                    Magics.set1c(key, self.args[key])
-+                elif isinstance(self.args[key][0], int):
-+                    Magics.set1i(key, numpy.array(self.args[key], dtype='i'))
-+                elif isinstance(self.args[key][0], float):
-+                    Magics.set1r(key, numpy.array(self.args[key]))
-+            elif isinstance(self.args[key], numpy.ndarray):
-+                type = self.args[key].dtype
-+                dim = len(self.args[key].shape)
-+                if isinstance(self.args[key][0], int):
-+                    if dim == 2:
-+                        Magics.set2i(key, self.args[key].copy())
-+                    else:
-+                        Magics.set1i(key, self.args[key].copy())
-+                elif (type == 'float64' or type == 'float32'):
-+                    if dim == 2:
-+                        Magics.set2r(key, self.args[key].copy())
-+                    else:
-+                        Magics.set1r(key, self.args[key].copy())
-+                else:
-+                    print("type???->", key)
-+
-+            else:
-+                self.args[key].execute(key)
-+
-+        if self.action is not None:
-+            if self.action != Magics.new_page:
-+                if self.action == Magics.legend:
-+                    Magics.setc("legend", "on")
-+                self.action()
-+                if self.action != Magics.obs and self.action != Magics.minput:
-+                    for key in list(self.args.keys()):
-+                        Magics.reset(key)
-+            else:
-+                self.action("page")
-+
  
- def make_action(verb, action, html=""):
--	def f(_m = None,**kw):
--		args = {}
--		if _m is not None: 
--			args.update(_m)
--		args.update(kw)
--		return Action(verb, action, html, args)
--	return f
-+    def f(_m=None, **kw):
-+        args = {}
-+        if _m is not None:
-+            args.update(_m)
-+        args.update(kw)
-+        return Action(verb, action, html, args)
-+    return f
- 
- mcoast = make_action("mcoast", Magics.coast, "Coastlines")
- pcoast = make_action("pcoast", Magics.coast)
-@@ -385,7 +397,7 @@ mmapgen = make_action("mmapgen", Magics.
+     def quote(self, v):
+         return "\"" + v + "\""
+@@ -128,12 +131,12 @@ class Action(object):
+                 dim  = len(self.args[key].shape)
+                 if isinstance(self.args[key][0], int):
+                     if (dim == 2) :
+-                        print "pset2i" 
++                        print ("pset2i" )
+                     else :
+-                        print "pset1i" 
++                        print ("pset1i" )
+                 elif ( type == 'float64' or type == 'float32') :
+                     if (dim == 2) :
+-                        print "pset2r" 
++                        print ("pset2r" )
+                     else :
+                         vval = ""
+                         vsep = ""
+@@ -146,10 +149,10 @@ class Action(object):
+                         vval += ""
+                         val+= '%s%s = [%s]'%(sep, key, vval)
+                 else :
+-                    print "type???->", key
++                    print ("type???->", key)
+             sep=",\n\t"
+                 
+-        print >>file, val + ")\n"
++        print (val + ")\n" (file=file)
+ 
+     def tomv4(self, file):
+         sep="\t"
+@@ -175,20 +178,20 @@ class Action(object):
+                    vval += "]"
+                    val+= '%s%s = %s'%(sep, key.upper(), vval)
+                 elif isinstance(self.args[key][0], int):
+-                   print "pset1i"
++                   print ("pset1i")
+                 elif isinstance(self.args[key][0], float):
+-                   print "pset1r" 
++                   print ("pset1r" )
+             elif isinstance(self.args[key], numpy.ndarray) :
+                 type = self.args[key].dtype
+                 dim  = len(self.args[key].shape)
+                 if isinstance(self.args[key][0], int):
+                     if (dim == 2) :
+-                        print "pset2i" 
++                        print ("pset2i" )
+                     else :
+-                        print "pset1i" 
++                        print ("pset1i" )
+                 elif ( type == 'float64' or type == 'float32') :
+                     if (dim == 2) :
+-                        print "pset2r" 
++                        print ("pset2r" )
+                     else :
+                         vval = "["
+                         vsep = ""
+@@ -199,10 +202,10 @@ class Action(object):
+                         val+= '%s%s = %s'%(sep, key.upper(), vval)
+                         
+                 else :
+-                    print "type???->", key
++                    print ("type???->", key)
+             sep=",\n\t"
+                 
+-        print >> file, val + "\n"
++        print ( val + "\n", file=file)
+ 
+ 
+ 
+@@ -210,7 +213,7 @@ class Action(object):
+ 
+     def tofortran(self, f):
+         if self.action == Magics.new_page :
+-            print >> f, '\tcall pnew("page")'
++               print  ('\tcall pnew("page")', file=f)
+             return
+         for key in self.args.keys():
+             if isinstance(self.args[key], str):
+@@ -385,7 +388,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")
@@ -1723,153 +1085,10 @@ Index: magics++-2.29.6/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")
-@@ -426,75 +438,82 @@ mtephi = make_action("mtephi", Magics.te
- mmetgraph = make_action("mmetgraph", Magics.mmetgraph)
- mmetbufr = make_action("mmetbufr", Magics.mmetbufr)
- 
-+
- def examine(*args):
--	for n in args:
--		try :
--			n.inspect()
--		except:
--			break
-+    for n in args:
-+        try:
-+            n.inspect()
-+        except:
-+            break
- 
- 
- def plot(*args):
--	Magics.init()
--	for n in args:
--		if isinstance(n, list):
--			for nn in n:
--				nn.execute()
--		else:
--				n.execute()
--	
--	#Collect the drivers!
--	Magics.finalize()
--	for f in context.tmp:
--		if os.path.exists(f):
--			os.remove(f)
-+    Magics.init()
-+    for n in args:
-+        if isinstance(n, list):
-+            for nn in n:
-+                nn.execute()
-+        else:
-+                n.execute()
-+
-+    # Collect the drivers!
-+    Magics.finalize()
-+    for f in context.tmp:
-+        if os.path.exists(f):
-+            os.remove(f)
- 
- 
- def tofortran(file, *args):
--	f = open(file+".f90",'w')
--	print >>f, "\tprogram magics\n"
--	print >>f, "\tcall popen\n"
--	for n in args:
--		n.tofortran(f)
--	print >>f, "\tcall pclose\n"
--	print >>f, "\tend"
-+    f = open(file+".f90", 'w')
-+    print("\tprogram magics\n", file=f)
-+    print("\tcall popen\n", file=f)
-+    for n in args:
-+        n.tofortran(f)
-+    print("\tcall pclose\n", file=f)
-+    print("\tend", file=f)
- 
- 
- def tohtml(file, *args):
--	f = open(file+".html",'w')
--	print >>f, "<html>"
--	for n in args:
--		n.tohtml(f)
--	print >>f, "</html>"
-+    f = open(file+".html", 'w')
-+    print("<html>", file=f)
-+    for n in args:
-+        n.tohtml(f)
-+    print("</html>", file=f)
-+
- 
- def tomv4(file, *args):
--	f = open(file+".mv4",'w')
--	for n in args:
--		n.tomv4(f)
--
--class  odb_filter(object):
--	def __init__(self, _m = None,**kw):
--		args = {}
--		self.verb = "odbfilter"
--		if _m is not None:
--			args.update(_m)
--		self.args = args
--	def execute(self, key):
--		file = "data%d" % numpy.random.randint(1,1000)
--		odb = "%s.odb" % file 
--		context.tmp.append(odb)
--		cmd = "odbsql -q \"" + self.args["query"] + "\" -i " + self.args["path"] + " -f newodb -o " + odb
--		print cmd 
--		if (os.system(cmd)) :
--			print "Error in filtering ODB data... Aborting"
--			os.abort();
--		Magics.setc('odb_filename', odb)
--	def inspect(self):
--		cmd = "odbsql -q \"" + self.args["query"] + "\" -i " + self.args["path"] + " -o data.ascii"
--		if (os.system(cmd)) :
--			print "Error in filtering ODB data... Aborting"
--			os.abort();
--		cmd =  os.environ['ODB_REPORTER'] + " %s" % "data.ascii"
--		if (os.system(cmd)) :
--			print "Error in viewing ODB data... Aborting"
--			os.abort();
-+    f = open(file+".mv4", 'w')
-+    for n in args:
-+        n.tomv4(f)
-+
-+
-+class odb_filter(object):
-+    def __init__(self, _m=None, **kw):
-+        args = {}
-+        self.verb = "odbfilter"
-+        if _m is not None:
-+            args.update(_m)
-+        self.args = args
-+
-+    def execute(self, key):
-+        file = "data%d" % numpy.random.randint(1, 1000)
-+        odb = "%s.odb" % file
-+        context.tmp.append(odb)
-+        cmd = "odbsql -q \"" + self.args["query"] + "\" -i " + \
-+              self.args["path"] + " -f newodb -o " + odb
-+        print(cmd)
-+        if (os.system(cmd)):
-+            print("Error in filtering ODB data... Aborting")
-+            os.abort()
-+        Magics.setc('odb_filename', odb)
-+
-+    def inspect(self):
-+        cmd = "odbsql -q \"" + self.args["query"] + "\" -i " + \
-+              self.args["path"] + " -o data.ascii"
-+        if os.system(cmd):
-+            print("Error in filtering ODB data... Aborting")
-+            os.abort()
-+        cmd = os.environ['ODB_REPORTER'] + " %s" % "data.ascii"
-+        if os.system(cmd):
-+            print("Error in viewing ODB data... Aborting")
-+            os.abort()
-Index: magics++-2.29.6/python/Magics/metgram.py
+Index: magics++-2.30.0/python/Magics/metgram.py
 ===================================================================
---- magics++-2.29.6.orig/python/Magics/metgram.py
-+++ magics++-2.29.6/python/Magics/metgram.py
+--- magics++-2.30.0.orig/python/Magics/metgram.py
++++ magics++-2.30.0/python/Magics/metgram.py
 @@ -1,11 +1,12 @@
  # (C) Copyright 1996-2016 ECMWF.
 -# 
@@ -2310,10 +1529,10 @@ Index: magics++-2.29.6/python/Magics/metgram.py
  msl = msl()
  wind = wind()
 -
-Index: magics++-2.29.6/test/cairo.py
+Index: magics++-2.30.0/test/cairo.py
 ===================================================================
---- magics++-2.29.6.orig/test/cairo.py
-+++ magics++-2.29.6/test/cairo.py
+--- magics++-2.30.0.orig/test/cairo.py
++++ magics++-2.30.0/test/cairo.py
 @@ -8,6 +8,8 @@
  
  # importing Magics module
@@ -2332,10 +1551,10 @@ Index: magics++-2.29.6/test/cairo.py
  plot( output,  europe, coast, )
  tofortran(ref, output,  europe, coast, )
  
-Index: magics++-2.29.6/test/bufr.py
+Index: magics++-2.30.0/test/bufr.py
 ===================================================================
---- magics++-2.29.6.orig/test/bufr.py
-+++ magics++-2.29.6/test/bufr.py
+--- magics++-2.30.0.orig/test/bufr.py
++++ magics++-2.30.0/test/bufr.py
 @@ -8,6 +8,7 @@
  
  # importing Magics module
@@ -2353,10 +1572,10 @@ Index: magics++-2.29.6/test/bufr.py
  plot( output,  europe, obs, coast, )
  tofortran(ref, output,  europe, obs, coast, )
  
-Index: magics++-2.29.6/test/coast.py
+Index: magics++-2.30.0/test/coast.py
 ===================================================================
---- magics++-2.29.6.orig/test/coast.py
-+++ magics++-2.29.6/test/coast.py
+--- magics++-2.30.0.orig/test/coast.py
++++ magics++-2.30.0/test/coast.py
 @@ -8,6 +8,7 @@
  
  # importing Magics module
@@ -2365,10 +1584,10 @@ Index: magics++-2.29.6/test/coast.py
  from Magics.macro import *
  
  
-Index: magics++-2.29.6/test/grib.py
+Index: magics++-2.30.0/test/grib.py
 ===================================================================
---- magics++-2.29.6.orig/test/grib.py
-+++ magics++-2.29.6/test/grib.py
+--- magics++-2.30.0.orig/test/grib.py
++++ magics++-2.30.0/test/grib.py
 @@ -8,6 +8,7 @@
  
  # importing Magics module
@@ -2386,10 +1605,10 @@ Index: magics++-2.29.6/test/grib.py
  plot( output,  europe, data, cont, coast, title)
  
  
-Index: magics++-2.29.6/python/Magics.i.in
+Index: magics++-2.30.0/python/Magics.i.in
 ===================================================================
---- magics++-2.29.6.orig/python/Magics.i.in
-+++ magics++-2.29.6/python/Magics.i.in
+--- magics++-2.30.0.orig/python/Magics.i.in
++++ magics++-2.30.0/python/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 e4aab6a..3745315 100644
--- a/debian/patches/reproducibility.patch
+++ b/debian/patches/reproducibility.patch
@@ -7,10 +7,10 @@ Bugs-Debian: https://bugs.debian.org/792824
 Last-Updated: 2016-01-07
 Forwarded: no
 
-Index: magics++-2.29.6/tools/xml2cc.pl
+Index: magics++-2.30.0/tools/xml2cc.pl
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2cc.pl
-+++ magics++-2.29.6/tools/xml2cc.pl
+--- magics++-2.30.0.orig/tools/xml2cc.pl
++++ magics++-2.30.0/tools/xml2cc.pl
 @@ -10,6 +10,11 @@
  
  use XML::Parser;
@@ -32,10 +32,10 @@ Index: magics++-2.29.6/tools/xml2cc.pl
      {
          print "#include \"$i.h\"\n";
      }
-Index: magics++-2.29.6/tools/xml2mv.pl
+Index: magics++-2.30.0/tools/xml2mv.pl
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2mv.pl
-+++ magics++-2.29.6/tools/xml2mv.pl
+--- magics++-2.30.0.orig/tools/xml2mv.pl
++++ magics++-2.30.0/tools/xml2mv.pl
 @@ -11,9 +11,12 @@
  
  use XML::Parser;
diff --git a/debian/patches/rm-ksh.patch b/debian/patches/rm-ksh.patch
index fb2802b..eeebfa5 100644
--- a/debian/patches/rm-ksh.patch
+++ b/debian/patches/rm-ksh.patch
@@ -3,30 +3,30 @@ Description: Remove ksh, as unsupported in Debian right now
 Last-Updated: 2016-11-13
 Forwarded: not-needed
 
-Index: magics++-2.29.6/apps/MagMLInterpretor/magjson-script.in
+Index: magics++-2.30.0/apps/MagMLInterpretor/magjson-script.in
 ===================================================================
---- magics++-2.29.6.orig/apps/MagMLInterpretor/magjson-script.in
-+++ magics++-2.29.6/apps/MagMLInterpretor/magjson-script.in
+--- magics++-2.30.0.orig/apps/MagMLInterpretor/magjson-script.in
++++ magics++-2.30.0/apps/MagMLInterpretor/magjson-script.in
 @@ -1,4 +1,4 @@
 -#!/bin/ksh
 +#!/bin/sh
  #set -x
  
  # Platform dependent variables
-Index: magics++-2.29.6/apps/MagMLInterpretor/magml-script.in
+Index: magics++-2.30.0/apps/MagMLInterpretor/magml-script.in
 ===================================================================
---- magics++-2.29.6.orig/apps/MagMLInterpretor/magml-script.in
-+++ magics++-2.29.6/apps/MagMLInterpretor/magml-script.in
+--- magics++-2.30.0.orig/apps/MagMLInterpretor/magml-script.in
++++ magics++-2.30.0/apps/MagMLInterpretor/magml-script.in
 @@ -1,4 +1,4 @@
 -#!/bin/ksh
 +#!/bin/sh
  #set -x
  
  # Platform dependent variables
-Index: magics++-2.29.6/apps/metgram/metgram-script.in
+Index: magics++-2.30.0/apps/metgram/metgram-script.in
 ===================================================================
---- magics++-2.29.6.orig/apps/metgram/metgram-script.in
-+++ magics++-2.29.6/apps/metgram/metgram-script.in
+--- magics++-2.30.0.orig/apps/metgram/metgram-script.in
++++ magics++-2.30.0/apps/metgram/metgram-script.in
 @@ -1,4 +1,4 @@
 -#!/bin/ksh
 +#!/bin/sh
diff --git a/debian/patches/soname-version.patch b/debian/patches/soname-version.patch
index 4e3b9eb..9d3b0b8 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.29.6/src/CMakeLists.txt
+Index: magics++-2.30.0/src/CMakeLists.txt
 ===================================================================
---- magics++-2.29.6.orig/src/CMakeLists.txt
-+++ magics++-2.29.6/src/CMakeLists.txt
+--- magics++-2.30.0.orig/src/CMakeLists.txt
++++ magics++-2.30.0/src/CMakeLists.txt
 @@ -122,6 +122,9 @@ ecbuild_add_library( TARGET    MagPlus
                          ${common_templates}
                       DEFINITIONS
@@ -36,10 +36,10 @@ Index: magics++-2.29.6/src/CMakeLists.txt
                       TYPE        SHARED )
  
  if ( BUILD_SHARED_LIBS STREQUAL "BOTH" )
-Index: magics++-2.29.6/cmake/ecbuild_add_library.cmake
+Index: magics++-2.30.0/cmake/ecbuild_add_library.cmake
 ===================================================================
---- magics++-2.29.6.orig/cmake/ecbuild_add_library.cmake
-+++ magics++-2.29.6/cmake/ecbuild_add_library.cmake
+--- magics++-2.30.0.orig/cmake/ecbuild_add_library.cmake
++++ magics++-2.30.0/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 fe45576..755f0ec 100644
--- a/debian/patches/terralib.patch
+++ b/debian/patches/terralib.patch
@@ -3,10 +3,10 @@ Description: Add Debians libterralib, rather than built-in version
 Last-Updated: 2016-07-08
 Forwarded: not-needed
 
-Index: magics++-2.29.6/src/CMakeLists.txt
+Index: magics++-2.30.0/src/CMakeLists.txt
 ===================================================================
---- magics++-2.29.6.orig/src/CMakeLists.txt
-+++ magics++-2.29.6/src/CMakeLists.txt
+--- magics++-2.30.0.orig/src/CMakeLists.txt
++++ magics++-2.30.0/src/CMakeLists.txt
 @@ -92,7 +92,6 @@ add_subdirectory( web )
  add_subdirectory( visualisers )
  add_subdirectory( drivers )
diff --git a/debian/patches/unique-ptr.patch b/debian/patches/unique-ptr.patch
index f544528..1f1c765 100644
--- a/debian/patches/unique-ptr.patch
+++ b/debian/patches/unique-ptr.patch
@@ -4,10 +4,10 @@ Description: For G++ 6, we move to c++14, auto_ptr is deprecated.
 Last-Updated: 2016-11-01
 Forwarded: no
 
-Index: magics++-2.29.6/src/basic/ParameterSettings.cc
+Index: magics++-2.30.0/src/basic/ParameterSettings.cc
 ===================================================================
---- magics++-2.29.6.orig/src/basic/ParameterSettings.cc
-+++ magics++-2.29.6/src/basic/ParameterSettings.cc
+--- magics++-2.30.0.orig/src/basic/ParameterSettings.cc
++++ magics++-2.30.0/src/basic/ParameterSettings.cc
 @@ -51,7 +51,7 @@ void setAttribute(const vector<string>&
  	}
  }
@@ -26,10 +26,10 @@ Index: magics++-2.29.6/src/basic/ParameterSettings.cc
  	}
  }
  
-Index: magics++-2.29.6/src/basic/ParameterSettings.h
+Index: magics++-2.30.0/src/basic/ParameterSettings.h
 ===================================================================
---- magics++-2.29.6.orig/src/basic/ParameterSettings.h
-+++ magics++-2.29.6/src/basic/ParameterSettings.h
+--- magics++-2.30.0.orig/src/basic/ParameterSettings.h
++++ magics++-2.30.0/src/basic/ParameterSettings.h
 @@ -24,10 +24,10 @@
  #include <Colour.h>
  
@@ -79,10 +79,10 @@ Index: magics++-2.29.6/src/basic/ParameterSettings.h
  			MagLog::debug() << "Parameter [" << name << "] set to " << val->second << endl;
  		}
  		catch (...) {
-Index: magics++-2.29.6/src/decoders/GribDecoder.cc
+Index: magics++-2.30.0/src/decoders/GribDecoder.cc
 ===================================================================
---- magics++-2.29.6.orig/src/decoders/GribDecoder.cc
-+++ magics++-2.29.6/src/decoders/GribDecoder.cc
+--- magics++-2.30.0.orig/src/decoders/GribDecoder.cc
++++ magics++-2.30.0/src/decoders/GribDecoder.cc
 @@ -90,7 +90,7 @@ void GribDecoder::set(const GribLoop& lo
      index_           = loop.uniqueId_;
      interpolation_method_ = loop.interpolation_method_;
@@ -101,10 +101,10 @@ Index: magics++-2.29.6/src/decoders/GribDecoder.cc
                          interpretor_->scaling(*this, scaling, offset,oriUnits,derivedUnits);
                          if(scaling==1 && offset == 0)
                          {
-Index: magics++-2.29.6/src/decoders/TitleTemplate.cc
+Index: magics++-2.30.0/src/decoders/TitleTemplate.cc
 ===================================================================
---- magics++-2.29.6.orig/src/decoders/TitleTemplate.cc
-+++ magics++-2.29.6/src/decoders/TitleTemplate.cc
+--- magics++-2.30.0.orig/src/decoders/TitleTemplate.cc
++++ magics++-2.30.0/src/decoders/TitleTemplate.cc
 @@ -171,7 +171,7 @@ bool TitleTemplate::verify(const GribDec
  //#ifdef MAGICS_EXCEPTION
  		try{
@@ -114,10 +114,10 @@ Index: magics++-2.29.6/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.29.6/src/decoders/TitleTemplate.h
+Index: magics++-2.30.0/src/decoders/TitleTemplate.h
 ===================================================================
---- magics++-2.29.6.orig/src/decoders/TitleTemplate.h
-+++ magics++-2.29.6/src/decoders/TitleTemplate.h
+--- magics++-2.30.0.orig/src/decoders/TitleTemplate.h
++++ magics++-2.30.0/src/decoders/TitleTemplate.h
 @@ -122,7 +122,7 @@ public:
  #ifdef MAGICS_EXCEPTION
  			try
@@ -127,10 +127,10 @@ Index: magics++-2.29.6/src/decoders/TitleTemplate.h
  				(*object)(*(*entry), lines, data);
  			}
  			catch (NoFactoryException& e)
-Index: magics++-2.29.6/src/libMagWrapper/MagPlus.cc
+Index: magics++-2.30.0/src/libMagWrapper/MagPlus.cc
 ===================================================================
---- magics++-2.29.6.orig/src/libMagWrapper/MagPlus.cc
-+++ magics++-2.29.6/src/libMagWrapper/MagPlus.cc
+--- magics++-2.30.0.orig/src/libMagWrapper/MagPlus.cc
++++ magics++-2.30.0/src/libMagWrapper/MagPlus.cc
 @@ -558,7 +558,7 @@ bool MagPlus::cartesianGrid(magics::MagR
  		haxis->icon("Horizontal Axis", "MAXIS");
  		haxis->label_type_ = xtype;
@@ -158,10 +158,10 @@ Index: magics++-2.29.6/src/libMagWrapper/MagPlus.cc
      		node->getReady();
      		//top()->legend(node);
  	if ( geographical_ ) {
-Index: magics++-2.29.6/src/magics.h
+Index: magics++-2.30.0/src/magics.h
 ===================================================================
---- magics++-2.29.6.orig/src/magics.h
-+++ magics++-2.29.6/src/magics.h
+--- magics++-2.30.0.orig/src/magics.h
++++ magics++-2.30.0/src/magics.h
 @@ -106,7 +106,7 @@ using std::pair;
  //using std::list;
  using std::map;
@@ -171,10 +171,10 @@ Index: magics++-2.29.6/src/magics.h
  
  #include <exception>
  
-Index: magics++-2.29.6/src/visualisers/AutomaticContourMethod.h
+Index: magics++-2.30.0/src/visualisers/AutomaticContourMethod.h
 ===================================================================
---- magics++-2.29.6.orig/src/visualisers/AutomaticContourMethod.h
-+++ magics++-2.29.6/src/visualisers/AutomaticContourMethod.h
+--- magics++-2.30.0.orig/src/visualisers/AutomaticContourMethod.h
++++ magics++-2.30.0/src/visualisers/AutomaticContourMethod.h
 @@ -228,7 +228,7 @@ public:
              //SampleContourMethod *am = static_cast < SampleContourMethod *> (MagTranslator<string, ContourMethod >()("sampling"));
              SampleContourMethod *am =new  SampleContourMethod();
@@ -211,10 +211,10 @@ Index: magics++-2.29.6/src/visualisers/AutomaticContourMethod.h
  
              pAkima760Method->resolutionX_ = (fContourResolutionX);
              pAkima760Method->resolutionY_ =  (fContourResolutionY);
-Index: magics++-2.29.6/src/visualisers/CalculateColourTechnique.cc
+Index: magics++-2.30.0/src/visualisers/CalculateColourTechnique.cc
 ===================================================================
---- magics++-2.29.6.orig/src/visualisers/CalculateColourTechnique.cc
-+++ magics++-2.29.6/src/visualisers/CalculateColourTechnique.cc
+--- magics++-2.30.0.orig/src/visualisers/CalculateColourTechnique.cc
++++ magics++-2.30.0/src/visualisers/CalculateColourTechnique.cc
 @@ -52,8 +52,8 @@ void CalculateColourTechnique::print(ost
  
  void CalculateColourTechnique::set(const ColourTechniqueInterface& attributes)
@@ -226,10 +226,10 @@ Index: magics++-2.29.6/src/visualisers/CalculateColourTechnique.cc
  	direction_ = attributes.getDirection();
  }
  
-Index: magics++-2.29.6/src/visualisers/LabelPlotting.cc
+Index: magics++-2.30.0/src/visualisers/LabelPlotting.cc
 ===================================================================
---- magics++-2.29.6.orig/src/visualisers/LabelPlotting.cc
-+++ magics++-2.29.6/src/visualisers/LabelPlotting.cc
+--- magics++-2.30.0.orig/src/visualisers/LabelPlotting.cc
++++ magics++-2.30.0/src/visualisers/LabelPlotting.cc
 @@ -41,7 +41,7 @@ void LabelPlotting::prepare(NoGridPlotti
  	
  	if ( *colour_ == "UNDEFINED" ) {
@@ -239,10 +239,10 @@ Index: magics++-2.29.6/src/visualisers/LabelPlotting.cc
  	}
  	
  	if ( longitudes_.empty() )
-Index: magics++-2.29.6/tools/xml2cc.pl
+Index: magics++-2.30.0/tools/xml2cc.pl
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2cc.pl
-+++ magics++-2.29.6/tools/xml2cc.pl
+--- magics++-2.30.0.orig/tools/xml2cc.pl
++++ magics++-2.30.0/tools/xml2cc.pl
 @@ -298,7 +298,7 @@ EOF
          }
          else 
@@ -261,10 +261,10 @@ Index: magics++-2.29.6/tools/xml2cc.pl
          }
         
          print "";
-Index: magics++-2.29.6/tools/xml2cc.pl.workshop
+Index: magics++-2.30.0/tools/xml2cc.pl.workshop
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2cc.pl.workshop
-+++ magics++-2.29.6/tools/xml2cc.pl.workshop
+--- magics++-2.30.0.orig/tools/xml2cc.pl.workshop
++++ magics++-2.30.0/tools/xml2cc.pl.workshop
 @@ -315,7 +315,7 @@ EOF
      {
          print <<EOF;   
@@ -283,10 +283,10 @@ Index: magics++-2.29.6/tools/xml2cc.pl.workshop
          }
      }
  
-Index: magics++-2.29.6/tools/xml2mv.pl
+Index: magics++-2.30.0/tools/xml2mv.pl
 ===================================================================
---- magics++-2.29.6.orig/tools/xml2mv.pl
-+++ magics++-2.29.6/tools/xml2mv.pl
+--- magics++-2.30.0.orig/tools/xml2mv.pl
++++ magics++-2.30.0/tools/xml2mv.pl
 @@ -447,7 +447,7 @@ EOF
              {
  				

-- 
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