[packages/gdal] - added poppler patch (fixes build with poppler 0.24+)

qboosh qboosh at pld-linux.org
Fri Sep 27 21:39:53 CEST 2013


commit 0077f8570a557302ee7658b26b83c208f12b52dd
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Fri Sep 27 21:40:25 2013 +0200

    - added poppler patch (fixes build with poppler 0.24+)

 gdal-poppler.patch | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 gdal.spec          |   6 ++-
 2 files changed, 125 insertions(+), 2 deletions(-)
---
diff --git a/gdal.spec b/gdal.spec
index 0acccc4..54074c5 100644
--- a/gdal.spec
+++ b/gdal.spec
@@ -55,6 +55,7 @@ Patch3:		%{name}-fpic.patch
 Patch4:		%{name}-format-security.patch
 Patch5:		%{name}-openjpeg2.patch
 Patch6:		%{name}-hdf4-eos.patch
+Patch7:		%{name}-poppler.patch
 URL:		http://www.gdal.org/
 %{?with_opencl:BuildRequires:	OpenCL-devel >= 1.0}
 %{?with_armadillo:BuildRequires:	armadillo-devel}
@@ -95,7 +96,7 @@ BuildRequires:	ogdi-devel >= 3.1
 BuildRequires:	perl-devel
 %{?with_php:BuildRequires:	php-devel}
 %{?with_podofo:BuildRequires:	podofo-devel}
-%{?with_poppler:BuildRequires:	poppler-devel}
+%{?with_poppler:BuildRequires:	poppler-devel >= 0.24}
 # ensure it's compiled with PQescapeStringConn support
 BuildRequires:	postgresql-backend-devel >= 8.1.4
 BuildRequires:	postgresql-devel >= 8.1.4
@@ -176,7 +177,7 @@ 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}
+%{?with_poppler:Requires:	poppler-devel >= 0.24}
 Requires:	postgresql-devel
 Requires:	proj-devel >= 4
 Requires:	sqlite3-devel >= 3.0.0
@@ -263,6 +264,7 @@ osr.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -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}
diff --git a/gdal-poppler.patch b/gdal-poppler.patch
new file mode 100644
index 0000000..58e2522
--- /dev/null
+++ b/gdal-poppler.patch
@@ -0,0 +1,121 @@
+--- gdal-1.9.2/frmts/pdf/pdfio.h.orig	2013-09-27 19:25:21.549930220 +0200
++++ gdal-1.9.2/frmts/pdf/pdfio.h	2013-09-27 19:50:28.013200337 +0200
+@@ -55,10 +55,11 @@
+                          Guint lengthA, Object *dictA);
+         virtual ~VSIPDFFileStream();
+ 
+-        virtual Stream *   makeSubStream(Guint startA, GBool limitedA,
+-                                         Guint lengthA, Object *dictA);
+-        virtual int        getPos();
+-        virtual Guint      getStart();
++        virtual BaseStream *copy();
++        virtual Stream *   makeSubStream(Goffset startA, GBool limitedA,
++                                         Goffset lengthA, Object *dictA);
++        virtual Goffset    getPos();
++        virtual Goffset    getStart();
+         virtual StreamKind getKind();
+         virtual GooString *getFileName();
+ 
+@@ -69,8 +70,8 @@
+         virtual void       reset();
+         virtual void       unfilteredReset ();
+         virtual void       close();
+-        virtual void       setPos(Guint pos, int dir = 0);
+-        virtual void       moveStart(int delta);
++        virtual void       setPos(Goffset pos, int dir = 0);
++        virtual void       moveStart(Goffset delta);
+ 
+     private:
+         VSIPDFFileStream  *poParent;
+--- gdal-1.9.2/configure.in.orig	2013-09-27 19:03:37.856651598 +0200
++++ gdal-1.9.2/configure.in	2013-09-27 19:24:36.179932130 +0200
+@@ -3000,10 +3000,10 @@
+         echo 'public:' >> testpoppler.cpp
+         echo '  TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
+         echo '  ~TestStream() {}' >> testpoppler.cpp
+-        echo '  virtual Stream *makeSubStream(Guint start, GBool limited, Guint length, Object *dict) { return 0; }' >> testpoppler.cpp
+-        echo '  virtual void setPos(Guint pos, int dir = 0) { }' >> testpoppler.cpp
+-        echo '  virtual Guint getStart() { return 0; }' >> testpoppler.cpp
+-        echo '  virtual void moveStart(int delta) { }' >> testpoppler.cpp
++        echo '  virtual Stream *makeSubStream(Goffset start, GBool limited, Goffset length, Object *dict) { return 0; }' >> testpoppler.cpp
++        echo '  virtual void setPos(Goffset pos, int dir = 0) { }' >> testpoppler.cpp
++        echo '  virtual Goffset getStart() { return 0; }' >> testpoppler.cpp
++        echo '  virtual void moveStart(Goffset delta) { }' >> testpoppler.cpp
+         echo '};' >> testpoppler.cpp
+         echo 'int main(int argc, char** argv) { return 0; }' >> testpoppler.cpp
+         if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
+--- gdal-1.9.2/frmts/pdf/pdfdataset.cpp.orig	2012-10-09 02:58:26.000000000 +0200
++++ gdal-1.9.2/frmts/pdf/pdfdataset.cpp	2013-09-27 19:40:31.413225370 +0200
+@@ -522,12 +522,12 @@
+ 
+ #ifdef USE_POPPLER
+ #ifdef POPPLER_0_20_OR_LATER
+-static void PDFDatasetErrorFunction(void* userData, ErrorCategory eErrCatagory, int nPos, char *pszMsg)
++static void PDFDatasetErrorFunction(void* userData, ErrorCategory eErrCatagory, Goffset nPos, char *pszMsg)
+ {
+     CPLString osError;
+ 
+     if (nPos >= 0)
+-        osError.Printf("Pos = %d, ", nPos);
++        osError.Printf("Pos = %lld, ", (long long)nPos);
+     osError += pszMsg;
+ 
+     if (strcmp(osError.c_str(), "Incorrect password") == 0)
+--- gdal-1.9.2/frmts/pdf/pdfio.cpp.orig	2012-10-09 02:58:26.000000000 +0200
++++ gdal-1.9.2/frmts/pdf/pdfio.cpp	2013-09-27 20:31:25.879764002 +0200
+@@ -102,12 +102,17 @@
+     }
+ }
+ 
++BaseStream *VSIPDFFileStream::copy()
++{
++    return new VSIPDFFileStream(*this);
++}
++
+ /************************************************************************/
+ /*                             makeSubStream()                          */
+ /************************************************************************/
+ 
+-Stream *VSIPDFFileStream::makeSubStream(Guint startA, GBool limitedA,
+-                                        Guint lengthA, Object *dictA)
++Stream *VSIPDFFileStream::makeSubStream(Goffset startA, GBool limitedA,
++                                        Goffset lengthA, Object *dictA)
+ {
+     return new VSIPDFFileStream(this,
+                                 startA, limitedA,
+@@ -118,7 +123,7 @@
+ /*                                 getPos()                             */
+ /************************************************************************/
+ 
+-int VSIPDFFileStream::getPos()
++Goffset VSIPDFFileStream::getPos()
+ {
+     return nCurrentPos;
+ }
+@@ -127,7 +132,7 @@
+ /*                                getStart()                            */
+ /************************************************************************/
+ 
+-Guint VSIPDFFileStream::getStart()
++Goffset VSIPDFFileStream::getStart()
+ {
+     return nStart;
+ }
+@@ -273,7 +278,7 @@
+ /*                               setPos()                               */
+ /************************************************************************/
+ 
+-void VSIPDFFileStream::setPos(Guint pos, int dir)
++void VSIPDFFileStream::setPos(Goffset pos, int dir)
+ {
+     if (dir >= 0)
+     {
+@@ -301,7 +306,7 @@
+ /*                            moveStart()                               */
+ /************************************************************************/
+ 
+-void VSIPDFFileStream::moveStart(int delta)
++void VSIPDFFileStream::moveStart(Goffset delta)
+ {
+     nStart += delta;
+     VSIFSeekL(f, nCurrentPos = nStart, SEEK_SET);
================================================================

---- gitweb:

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



More information about the pld-cvs-commit mailing list