[packages/gdal] - changed format-security patch to change swig input instead of generated files - added openjpeg2 pa

qboosh qboosh at pld-linux.org
Mon Jan 7 17:19:51 CET 2013


commit c9c082800f13f860f47e22c28148474c1c46588c
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Jan 7 17:19:55 2013 +0100

    - changed format-security patch to change swig input instead of generated files
    - added openjpeg2 patch to adjust openjpeg filter for final openjpeg 2.0; enable openjpeg support
    - added hdf4-eos patch to fix build with internal (modified) hdf-eos also when system hdf-eos is installed

 gdal-format-security.patch | 1086 +-------------------------------------------
 gdal-hdf4-eos.patch        |   11 +
 gdal-openjpeg2.patch       |  241 ++++++++++
 gdal.spec                  |    9 +-
 4 files changed, 271 insertions(+), 1076 deletions(-)
---
diff --git a/gdal.spec b/gdal.spec
index ff0b8f3..c1f0adc 100644
--- a/gdal.spec
+++ b/gdal.spec
@@ -28,6 +28,7 @@
 %bcond_without	mysql		# MySQL DB support
 %bcond_without	odbc		# ODBC DB support
 %bcond_without	opencl		# OpenCL (GPU) support
+%bcond_without	openjpeg	# OpenJPEG 2 (JPEG2000) support
 %bcond_with	podofo		# PDF support via podofo instead of poppler
 %bcond_without	poppler		# PDF support via poppler
 %bcond_without	spatialite	# SpatiaLite support
@@ -53,6 +54,8 @@ Patch1:		%{name}-python_install.patch
 Patch2:		%{name}-php.patch
 Patch3:		%{name}-fpic.patch
 Patch4:		%{name}-format-security.patch
+Patch5:		%{name}-openjpeg2.patch
+Patch6:		%{name}-hdf4-eos.patch
 URL:		http://www.gdal.org/
 %{?with_opencl:BuildRequires:	OpenCL-devel >= 1.0}
 %{?with_armadillo:BuildRequires:	armadillo-devel}
@@ -88,6 +91,7 @@ BuildRequires:	libxml2-devel
 %{?with_mysql:BuildRequires:	mysql-devel}
 BuildRequires:	netcdf-devel >= 4.1
 BuildRequires:	ogdi-devel >= 3.1
+%{?with_openjpeg:BuildRequires:	openjpeg2-devel >= 2.0.0-2}
 #BuildRequires:	pcidsk-devel > 0.3
 BuildRequires:	perl-devel
 %{?with_php:BuildRequires:	php-devel}
@@ -169,6 +173,7 @@ Requires:	libxml2-devel
 %{?with_mysql:Requires:	mysql-devel}
 Requires:	netcdf-devel >= 4
 Requires:	ogdi-devel >= 3.1
+%{?with_openjpeg:Requires:	openjpeg2-devel >= 2.0.0-2}
 #Requires:	pcidsk-devel > 0.3
 %{?with_podofo:Requires:	podofo-devel}
 %{?with_poppler:Requires:	poppler-devel}
@@ -256,6 +261,9 @@ osr.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 
 # need to regenerate (old ones don't support perl 5.10)
 %{__rm} swig/perl/{gdal_wrap.cpp,gdalconst_wrap.c,ogr_wrap.cpp,osr_wrap.cpp}
@@ -303,7 +311,6 @@ osr.
 %{__make} -j1 -C swig/perl generate
 %if %{with ruby}
 %{__make} -j1 -C swig/ruby generate
-%patch4 -p1
 %endif
 
 %{__make} -j1
diff --git a/gdal-format-security.patch b/gdal-format-security.patch
index cd10998..2783f10 100644
--- a/gdal-format-security.patch
+++ b/gdal-format-security.patch
@@ -1,1075 +1,11 @@
---- gdal-1.9.2/swig/ruby/ogr_wrap.cpp.orig	2012-11-18 19:58:26.045113264 +0100
-+++ gdal-1.9.2/swig/ruby/ogr_wrap.cpp	2012-11-18 20:20:52.904032656 +0100
-@@ -4264,7 +4264,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4327,7 +4327,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5152,7 +5152,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -5601,7 +5601,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5677,7 +5677,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5753,7 +5753,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5824,7 +5824,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5887,7 +5887,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6088,7 +6088,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6259,7 +6259,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6330,7 +6330,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6409,7 +6409,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6493,7 +6493,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6597,7 +6597,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6660,7 +6660,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6723,7 +6723,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6786,7 +6786,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6969,7 +6969,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7247,7 +7247,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7316,7 +7316,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8928,7 +8928,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -10334,7 +10334,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -10439,7 +10439,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -13371,7 +13371,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -13477,7 +13477,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -13884,7 +13884,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -13960,7 +13960,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -16769,7 +16769,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -16845,7 +16845,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -17677,7 +17677,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
---- gdal-1.9.2/swig/ruby/osr_wrap.cpp~	2012-11-18 19:48:51.125133547 +0100
-+++ gdal-1.9.2/swig/ruby/osr_wrap.cpp	2012-11-18 20:40:20.190658146 +0100
-@@ -2587,7 +2587,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -2659,7 +2659,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -3219,7 +3219,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3330,7 +3330,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3390,7 +3390,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3481,7 +3481,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3541,7 +3541,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3599,7 +3599,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -3771,7 +3771,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -3868,7 +3868,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
-@@ -3904,7 +3904,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -3947,7 +3947,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -4005,7 +4005,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -4113,7 +4113,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -4322,7 +4322,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4391,7 +4391,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4460,7 +4460,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4529,7 +4529,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4598,7 +4598,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4683,7 +4683,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4744,7 +4744,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4805,7 +4805,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4874,7 +4874,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -4951,7 +4951,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5028,7 +5028,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5089,7 +5089,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5150,7 +5150,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5184,7 +5184,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5253,7 +5253,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5322,7 +5322,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5415,7 +5415,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5516,7 +5516,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5609,7 +5609,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5678,7 +5678,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5763,7 +5763,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5840,7 +5840,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5925,7 +5925,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -5994,7 +5994,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6071,7 +6071,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6132,7 +6132,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6201,7 +6201,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6278,7 +6278,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6347,7 +6347,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6416,7 +6416,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6493,7 +6493,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6554,7 +6554,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6615,7 +6615,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6692,7 +6692,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6761,7 +6761,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6838,7 +6838,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -6924,7 +6924,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -6995,7 +6995,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7072,7 +7072,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7133,7 +7133,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7181,7 +7181,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7231,7 +7231,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7280,7 +7280,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7378,7 +7378,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7418,7 +7418,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7474,7 +7474,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7595,7 +7595,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7655,7 +7655,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7707,7 +7707,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7775,7 +7775,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7853,7 +7853,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7897,7 +7897,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -7940,7 +7940,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -7990,7 +7990,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -8040,7 +8040,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8092,7 +8092,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8134,7 +8134,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8215,7 +8215,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -8308,7 +8308,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8351,7 +8351,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -8424,7 +8424,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -8473,7 +8473,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
-@@ -8515,7 +8515,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8589,7 +8589,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8653,7 +8653,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8729,7 +8729,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -8852,7 +8852,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   if (SWIG_IsTmpObj(res2)) {
-@@ -8944,7 +8944,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9010,7 +9010,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9116,7 +9116,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9150,7 +9150,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9184,7 +9184,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9218,7 +9218,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9252,7 +9252,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
-@@ -9286,7 +9286,7 @@
-   {
-     /* %typemap(out) OGRErr */
-     if (result != 0) {
--      rb_raise(rb_eRuntimeError, OGRErrMessages(result));
-+      rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
-     }
-   }
-   {
+--- gdal-1.9.2/swig/include/ruby/typemaps_ruby.i.orig	2012-10-09 02:58:28.000000000 +0200
++++ gdal-1.9.2/swig/include/ruby/typemaps_ruby.i	2013-01-06 15:12:18.221272187 +0100
+@@ -127,7 +127,7 @@
+ {
+   /* %typemap(out) OGRErr */
+   if ($1 != 0) {
+-    rb_raise(rb_eRuntimeError, OGRErrMessages(result));
++    rb_raise(rb_eRuntimeError, "%s", OGRErrMessages(result));
+   }
+ }
+ 
diff --git a/gdal-hdf4-eos.patch b/gdal-hdf4-eos.patch
new file mode 100644
index 0000000..b72effd
--- /dev/null
+++ b/gdal-hdf4-eos.patch
@@ -0,0 +1,11 @@
+--- gdal-1.9.2/frmts/hdf4/GNUmakefile.orig	2012-10-09 02:58:26.000000000 +0200
++++ gdal-1.9.2/frmts/hdf4/GNUmakefile	2013-01-06 21:13:02.687487717 +0100
+@@ -12,7 +12,7 @@
+ HDFEOS_OPTS :=	-Ihdf-eos $(HDFEOS_OPTS)
+ endif
+ 
+-CPPFLAGS	:=	-I../pds $(GDAL_INCLUDE) $(HDF4_INCLUDE) $(HDFEOS_OPTS) $(CPPFLAGS)
++CPPFLAGS	:=	-I../pds $(GDAL_INCLUDE) $(HDFEOS_OPTS) $(HDF4_INCLUDE) $(CPPFLAGS)
+ 
+ default:	$(OBJ:.o=.$(OBJ_EXT)) $(SUBLIBS)
+ 
diff --git a/gdal-openjpeg2.patch b/gdal-openjpeg2.patch
new file mode 100644
index 0000000..87834c7
--- /dev/null
+++ b/gdal-openjpeg2.patch
@@ -0,0 +1,241 @@
+--- gdal-1.9.2/configure.in.orig	2013-01-06 15:03:02.347950440 +0100
++++ gdal-1.9.2/configure.in	2013-01-06 15:06:03.784613325 +0100
+@@ -1644,20 +1644,20 @@
+ 
+ elif test "$with_openjpeg" = "yes" -o "$with_openjpeg" = "" ; then
+ 
+-  AC_CHECK_LIB(openjpeg,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
+-  AC_CHECK_HEADERS(openjpeg.h)
++  AC_CHECK_LIB(openjp2,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
++  AC_CHECK_HEADERS(openjpeg-2.0/openjpeg.h)
+ 
+-  if test "$ac_cv_header_openjpeg_h" = "no"; then
++  if test "$ac_cv_header_openjpeg_2_0_openjpeg_h" = "no"; then
+     HAVE_OPENJPEG=no
+   fi
+ 
+   if test "$HAVE_OPENJPEG" = "yes" ; then
+-    LIBS="-lopenjpeg $LIBS"
++    LIBS="-lopenjp2 $LIBS"
+   fi
+ else
+ 
+   HAVE_OPENJPEG=yes
+-  LIBS="-L$with_openjpeg -L$with_openjpeg/lib -lopenjpeg $LIBS"
++  LIBS="-L$with_openjpeg -L$with_openjpeg/lib -lopenjp2 $LIBS"
+   if test -r $with_openjpeg/include/openjpeg-2.0/openjpeg.h ; then
+     EXTRA_INCLUDES="-I$with_openjpeg/include/openjpeg-2.0 $EXTRA_INCLUDES"
+   elif test -r $with_openjpeg/include/openjpeg.h ; then
+@@ -1668,7 +1668,7 @@
+     AC_MSG_ERROR([openjpeg.h not found in $with_openjpeg/include or $with_openjpeg/include/openjpeg-2.0])
+   fi
+ 
+-  AC_CHECK_LIB(openjpeg,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
++  AC_CHECK_LIB(openjp2,opj_decode_tile_data,HAVE_OPENJPEG=yes,HAVE_OPENJPEG=no,)
+ 
+   if test "$HAVE_OPENJPEG" = "yes" ; then
+     AC_MSG_NOTICE([using OpenJPEG library from $with_openjpeg.])
+--- gdal-1.9.2/frmts/openjpeg/openjpegdataset.cpp.orig	2012-10-09 02:58:27.000000000 +0200
++++ gdal-1.9.2/frmts/openjpeg/openjpegdataset.cpp	2013-01-06 15:06:51.307945668 +0100
+@@ -37,7 +37,7 @@
+ /* and when calling openjpeg API from the driver, we have to replace bool by int also */
+ #define bool int
+ #define GDAL_OPENJPEG_BOOL int
+-#include <openjpeg.h>
++#include <openjpeg-2.0/openjpeg.h>
+ #undef bool /* undef now, so that later includes are happy */
+ 
+ #include "gdal_pam.h"
+--- gdal-1.9.2/frmts/openjpeg/openjpegdataset.cpp.orig	2013-01-06 16:55:59.004475860 +0100
++++ gdal-1.9.2/frmts/openjpeg/openjpegdataset.cpp	2013-01-06 18:46:00.987671587 +0100
+@@ -107,7 +107,7 @@
+ /*                       JP2OpenJPEGDataset_Seek()                      */
+ /************************************************************************/
+ 
+-static GDAL_OPENJPEG_BOOL JP2OpenJPEGDataset_Seek(OPJ_SIZE_T nBytes, void * pUserData)
++static GDAL_OPENJPEG_BOOL JP2OpenJPEGDataset_Seek(OPJ_OFF_T nBytes, void * pUserData)
+ {
+ #ifdef DEBUG
+     CPLDebug("OPENJPEG", "JP2OpenJPEGDataset_Seek(%d)", nBytes);
+@@ -119,7 +119,7 @@
+ /*                     JP2OpenJPEGDataset_Skip()                        */
+ /************************************************************************/
+ 
+-static OPJ_SIZE_T JP2OpenJPEGDataset_Skip(OPJ_SIZE_T nBytes, void * pUserData)
++static OPJ_OFF_T JP2OpenJPEGDataset_Skip(OPJ_OFF_T nBytes, void * pUserData)
+ {
+     vsi_l_offset nOffset = VSIFTellL((VSILFILE*)pUserData);
+     nOffset += nBytes;
+@@ -332,10 +332,7 @@
+     opj_stream_set_user_data(pStream, poGDS->fp);
+ 
+     opj_image_t * psImage = NULL;
+-    OPJ_INT32  nX0,nY0;
+-    OPJ_UINT32 nTileW,nTileH,nTilesX,nTilesY;
+-    if(!opj_read_header(pCodec, &psImage, &nX0, &nY0, &nTileW, &nTileH,
+-                        &nTilesX, &nTilesY, pStream))
++    if(!opj_read_header(pStream, pCodec, &psImage))
+     {
+         CPLError(CE_Failure, CPLE_AppDefined, "opj_read_header() failed");
+         opj_destroy_codec(pCodec);
+@@ -343,7 +340,7 @@
+         return CE_Failure;
+     }
+ 
+-    if (!opj_set_decode_area(pCodec,
++    if (!opj_set_decode_area(pCodec, psImage,
+                             nBlockXOff * nBlockXSize,
+                             nBlockYOff * nBlockYSize,
+                             nBlockXOff * nBlockXSize + nWidthToRead,
+@@ -378,9 +375,9 @@
+ 
+     do
+     {
+-        if (!opj_read_tile_header(pCodec, &nTileIndex, &nRequiredSize,
++        if (!opj_read_tile_header(pCodec, pStream, &nTileIndex, &nRequiredSize,
+                                   &nTileX0, &nTileY0, &nTileX1, &nTileY1,
+-                                  &nCompCount, &bDataToUncompress, pStream))
++                                  &nCompCount, &bDataToUncompress))
+         {
+             CPLError(CE_Failure, CPLE_AppDefined, "opj_read_tile_header() failed");
+             CPLFree(pTempBuffer);
+@@ -494,7 +491,7 @@
+ {
+     JP2OpenJPEGDataset *poGDS = (JP2OpenJPEGDataset *) poDS;
+ 
+-    if (poGDS->eColorSpace == CLRSPC_GRAY)
++    if (poGDS->eColorSpace == OPJ_CLRSPC_GRAY)
+         return GCI_GrayIndex;
+     else if (poGDS->nBands == 3 || poGDS->nBands == 4)
+     {
+@@ -541,8 +538,8 @@
+     adfGeoTransform[4] = 0.0;
+     adfGeoTransform[5] = 1.0;
+     bLoadingOtherBands = FALSE;
+-    eCodecFormat = CODEC_UNKNOWN;
+-    eColorSpace = CLRSPC_UNKNOWN;
++    eCodecFormat = OPJ_CODEC_UNKNOWN;
++    eColorSpace = OPJ_CLRSPC_UNKNOWN;
+     bIs420 = FALSE;
+     pFullBuffer = NULL;
+ }
+@@ -676,9 +673,9 @@
+     static const unsigned char jpc_header[] = {0xff,0x4f};
+     if (memcmp( poOpenInfo->pabyHeader, jpc_header, 
+                     sizeof(jpc_header) ) == 0)
+-        eCodecFormat = CODEC_J2K;
++        eCodecFormat = OPJ_CODEC_J2K;
+     else
+-        eCodecFormat = CODEC_JP2;
++        eCodecFormat = OPJ_CODEC_JP2;
+ 
+     opj_codec_t* pCodec = opj_create_decompress(eCodecFormat);
+ 
+@@ -703,10 +700,8 @@
+     opj_stream_set_user_data(pStream, fp);
+ 
+     opj_image_t * psImage = NULL;
+-    OPJ_INT32  nX0,nY0;
+-    OPJ_UINT32 nTileW,nTileH,nTilesX,nTilesY;
+-    if(!opj_read_header(pCodec, &psImage, &nX0, &nY0, &nTileW, &nTileH,
+-                        &nTilesX, &nTilesY, pStream))
++    OPJ_UINT32 nTileW,nTileH;
++    if(!opj_read_header(pStream, pCodec, &psImage))
+     {
+         CPLError(CE_Failure, CPLE_AppDefined, "opj_read_header() failed");
+         opj_destroy_codec(pCodec);
+@@ -725,10 +720,21 @@
+         return NULL;
+     }
+ 
++    opj_codestream_info_v2_t *csinfo = opj_get_cstr_info(pCodec);
++    if (csinfo == NULL)
++    {
++        opj_destroy_codec(pCodec);
++        opj_stream_destroy(pStream);
++        opj_image_destroy(psImage);
++        VSIFCloseL(fp);
++        return NULL;
++    }
++    nTileW = csinfo->tdx;
++    nTileH = csinfo->tdy;
++    opj_destroy_cstr_info(&csinfo);
++
+ #ifdef DEBUG
+     int i;
+-    CPLDebug("OPENJPEG", "nX0 = %d", nX0);
+-    CPLDebug("OPENJPEG", "nY0 = %d", nY0);
+     CPLDebug("OPENJPEG", "nTileW = %d", nTileW);
+     CPLDebug("OPENJPEG", "nTileH = %d", nTileH);
+     CPLDebug("OPENJPEG", "psImage->x0 = %d", psImage->x0);
+@@ -780,7 +786,7 @@
+             eDataType = GDT_UInt16;
+     }
+ 
+-    int bIs420  =  (psImage->color_space != CLRSPC_SRGB &&
++    int bIs420  =  (psImage->color_space != OPJ_CLRSPC_SRGB &&
+                     eDataType == GDT_Byte &&
+                     psImage->numcomps == 3 &&
+                     psImage->comps[1].w == psImage->comps[0].w / 2 &&
+@@ -932,14 +938,14 @@
+ /* -------------------------------------------------------------------- */
+ /*      Analyze creation options.                                       */
+ /* -------------------------------------------------------------------- */
+-    OPJ_CODEC_FORMAT eCodecFormat = CODEC_J2K;
++    OPJ_CODEC_FORMAT eCodecFormat = OPJ_CODEC_J2K;
+     const char* pszCodec = CSLFetchNameValueDef(papszOptions, "CODEC", NULL);
+     if (pszCodec)
+     {
+         if (EQUAL(pszCodec, "JP2"))
+-            eCodecFormat = CODEC_JP2;
++            eCodecFormat = OPJ_CODEC_JP2;
+         else if (EQUAL(pszCodec, "J2K"))
+-            eCodecFormat = CODEC_J2K;
++            eCodecFormat = OPJ_CODEC_J2K;
+         else
+         {
+             CPLError(CE_Warning, CPLE_NotSupported,
+@@ -952,7 +958,7 @@
+         if (strlen(pszFilename) > 4 &&
+             EQUAL(pszFilename + strlen(pszFilename) - 4, ".JP2"))
+         {
+-            eCodecFormat = CODEC_JP2;
++            eCodecFormat = OPJ_CODEC_JP2;
+         }
+     }
+ 
+@@ -971,19 +977,19 @@
+     if (nYSize < nBlockYSize)
+         nBlockYSize = nYSize;
+ 
+-    OPJ_PROG_ORDER eProgOrder = LRCP;
++    OPJ_PROG_ORDER eProgOrder = OPJ_LRCP;
+     const char* pszPROGORDER =
+             CSLFetchNameValueDef(papszOptions, "PROGRESSION", "LRCP");
+     if (EQUAL(pszPROGORDER, "LRCP"))
+-        eProgOrder = LRCP;
++        eProgOrder = OPJ_LRCP;
+     else if (EQUAL(pszPROGORDER, "RLCP"))
+-        eProgOrder = RLCP;
++        eProgOrder = OPJ_RLCP;
+     else if (EQUAL(pszPROGORDER, "RPCL"))
+-        eProgOrder = RPCL;
++        eProgOrder = OPJ_RPCL;
+     else if (EQUAL(pszPROGORDER, "PCRL"))
+-        eProgOrder = PCRL;
++        eProgOrder = OPJ_PCRL;
+     else if (EQUAL(pszPROGORDER, "CPRL"))
+-        eProgOrder = CPRL;
++        eProgOrder = OPJ_CPRL;
+     else
+     {
+         CPLError(CE_Warning, CPLE_NotSupported,
+@@ -1097,7 +1103,7 @@
+     opj_set_warning_handler(pCodec, JP2OpenJPEGDataset_WarningCallback,NULL);
+     opj_set_error_handler(pCodec, JP2OpenJPEGDataset_ErrorCallback,NULL);
+ 
+-    OPJ_COLOR_SPACE eColorSpace = (bResample) ? CLRSPC_SYCC : (nBands == 3) ? CLRSPC_SRGB : CLRSPC_GRAY;
++    OPJ_COLOR_SPACE eColorSpace = (bResample) ? OPJ_CLRSPC_SYCC : (nBands == 3) ? OPJ_CLRSPC_SRGB : OPJ_CLRSPC_GRAY;
+     opj_image_t* psImage = opj_image_tile_create(nBands,pasBandParams,
+                                                  eColorSpace);
+     CPLFree(pasBandParams);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gdal.git/commitdiff/c9c082800f13f860f47e22c28148474c1c46588c




More information about the pld-cvs-commit mailing list