New version 2.2.2

This commit is contained in:
Volker Fröhlich 2017-09-26 23:14:48 +02:00
parent d57dd118cf
commit a0abbc1f43
9 changed files with 102 additions and 720 deletions

2
.gitignore vendored
View File

@ -31,3 +31,5 @@ gdalautotest-1.7.0.tar.gz
/gdal-2.1.3-fedora.tar.xz
/gdal-2.1.4-fedora.tar.xz
/gdalautotest-2.1.4.tar.gz
/gdal-2.2.2-fedora.tar.xz
/gdalautotest-2.2.2.tar.gz

View File

@ -1,12 +0,0 @@
diff -up ./frmts/mrf/mrf_band.cpp.zlib ./frmts/mrf/mrf_band.cpp
--- ./frmts/mrf/mrf_band.cpp.zlib 2016-04-25 19:35:55.000000000 +0200
+++ ./frmts/mrf/mrf_band.cpp 2016-05-02 16:24:16.802790904 +0200
@@ -57,7 +57,7 @@
#include <vector>
#include <assert.h>
-#include "../zlib/zlib.h"
+#include <zlib.h>
using std::vector;
using std::string;

View File

@ -1,625 +0,0 @@
Index: /branches/2.2/gdal/GDALmake.opt.in
===================================================================
--- /branches/2.2/gdal/GDALmake.opt.in (revision 40035)
+++ /branches/2.2/gdal/GDALmake.opt.in (revision 40036)
@@ -473,4 +473,5 @@
POPPLER_0_20_OR_LATER = @POPPLER_0_20_OR_LATER@
POPPLER_0_23_OR_LATER = @POPPLER_0_23_OR_LATER@
+POPPLER_0_58_OR_LATER = @POPPLER_0_58_OR_LATER@
POPPLER_INC = @POPPLER_INC@
POPPLER_PLUGIN_LIB = @POPPLER_PLUGIN_LIB@
Index: /branches/2.2/gdal/configure
===================================================================
--- /branches/2.2/gdal/configure (revision 40035)
+++ /branches/2.2/gdal/configure (revision 40036)
@@ -663,4 +663,5 @@
POPPLER_PLUGIN_LIB
POPPLER_INC
+POPPLER_0_58_OR_LATER
POPPLER_0_23_OR_LATER
POPPLER_0_20_OR_LATER
@@ -32272,4 +32273,6 @@
POPPLER_BASE_STREAM_HAS_TWO_ARGS=no
POPPLER_0_20_OR_LATER=no
+POPPLER_0_23_OR_LATER=no
+POPPLER_0_58_OR_LATER=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for poppler" >&5
@@ -32312,15 +32315,19 @@
POPPLER_PLUGIN_LIB="${TEST_POPPLER_LIB}"
- # And now try another dirty thing, but this one is
- # optional.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Catalog::optContent exists" >&5
-$as_echo_n "checking if Catalog::optContent exists... " >&6; }
+ CHECK_OTHER_POPPLER_VERSION=yes
+
+ # And now we check if we have Poppler >= 0.58.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Object does have new API (>= 0.58.0)" >&5
+$as_echo_n "checking if Object does have new API (>= 0.58.0)... " >&6; }
rm -f testpoppler.*
- echo '#define private public' > testpoppler.cpp
- echo '#include <poppler/Object.h>' >> testpoppler.cpp
- echo '#include <poppler/Catalog.h>' >> testpoppler.cpp
- echo 'int main(int argc, char** argv) { return &(((Catalog*)0x8000)->optContent) == 0; }' >> testpoppler.cpp
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo 'int main(int argc, char** argv) { Object o(objNull); return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
+ POPPLER_0_58_OR_LATER=yes
+ POPPLER_0_23_OR_LATER=yes
+ POPPLER_0_20_OR_LATER=yes
+ POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
POPPLER_HAS_OPTCONTENT=yes
+ CHECK_OTHER_POPPLER_VERSION=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -32330,48 +32337,73 @@
fi
- # And now we check if we have Poppler >= 0.16.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if BaseStream constructor needs 2 arguments" >&5
-$as_echo_n "checking if BaseStream constructor needs 2 arguments... " >&6; }
- rm -f testpoppler.*
- echo '#include <poppler/Object.h>' > testpoppler.cpp
- echo '#include <poppler/Stream.h>' >> testpoppler.cpp
- echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
- echo 'public:' >> testpoppler.cpp
- echo ' TestStream() : BaseStream(0,0) {}' >> 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
- POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
- # And now we check if we have Poppler >= 0.20.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have Poppler >= 0.20.0" >&5
-$as_echo_n "checking if we have Poppler >= 0.20.0... " >&6; }
+ if test "$CHECK_OTHER_POPPLER_VERSION" = "yes"; then
+
+ # And now try another dirty thing, but this one is
+ # optional.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Catalog::optContent exists" >&5
+$as_echo_n "checking if Catalog::optContent exists... " >&6; }
rm -f testpoppler.*
- echo '#include <poppler/Error.h>' > testpoppler.cpp
- echo 'int main(int argc, char** argv) { setErrorCallback(0,0); return 0; }' >> testpoppler.cpp
+ echo '#define private public' > testpoppler.cpp
+ echo '#include <poppler/Object.h>' >> testpoppler.cpp
+ echo '#include <poppler/Catalog.h>' >> testpoppler.cpp
+ echo 'int main(int argc, char** argv) { return &(((Catalog*)0x8000)->optContent) == 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
- POPPLER_0_20_OR_LATER=yes
+ POPPLER_HAS_OPTCONTENT=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-
- # And now we check if we have Poppler >= 0.23.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have Poppler >= 0.23.0" >&5
-$as_echo_n "checking if we have Poppler >= 0.23.0... " >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+
+ # And now we check if we have Poppler >= 0.16.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if BaseStream constructor needs 2 arguments" >&5
+$as_echo_n "checking if BaseStream constructor needs 2 arguments... " >&6; }
+ rm -f testpoppler.*
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo '#include <poppler/Stream.h>' >> testpoppler.cpp
+ echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
+ echo 'public:' >> testpoppler.cpp
+ echo ' TestStream() : BaseStream(0,0) {}' >> 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
+ POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+ # And now we check if we have Poppler >= 0.20.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have Poppler >= 0.20.0" >&5
+$as_echo_n "checking if we have Poppler >= 0.20.0... " >&6; }
rm -f testpoppler.*
- echo '#include <poppler/Object.h>' > testpoppler.cpp
- echo '#include <poppler/Stream.h>' >> testpoppler.cpp
- echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
- echo 'public:' >> testpoppler.cpp
- echo ' TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
- echo ' ~TestStream() {}' >> testpoppler.cpp
- echo ' virtual BaseStream *copy() { return BaseStream::copy(); }' >> testpoppler.cpp
- echo '};' >> testpoppler.cpp
- echo 'int main(int argc, char** argv) { return 0; }' >> testpoppler.cpp
+ echo '#include <poppler/Error.h>' > testpoppler.cpp
+ echo 'int main(int argc, char** argv) { setErrorCallback(0,0); return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
- POPPLER_0_23_OR_LATER=yes
+ POPPLER_0_20_OR_LATER=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
+
+ # And now we check if we have Poppler >= 0.23.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have Poppler >= 0.23.0" >&5
+$as_echo_n "checking if we have Poppler >= 0.23.0... " >&6; }
+ rm -f testpoppler.*
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo '#include <poppler/Stream.h>' >> testpoppler.cpp
+ echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
+ echo 'public:' >> testpoppler.cpp
+ echo ' TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
+ echo ' ~TestStream() {}' >> testpoppler.cpp
+ echo ' virtual BaseStream *copy() { return BaseStream::copy(); }' >> 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
+ POPPLER_0_23_OR_LATER=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -32383,8 +32415,4 @@
$as_echo "no" >&6; }
fi
-
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
fi
else
@@ -32408,4 +32436,6 @@
POPPLER_0_23_OR_LATER=$POPPLER_0_23_OR_LATER
+
+POPPLER_0_58_OR_LATER=$POPPLER_0_58_OR_LATER
POPPLER_INC=$POPPLER_INC
Index: /branches/2.2/gdal/configure.in
===================================================================
--- /branches/2.2/gdal/configure.in (revision 40035)
+++ /branches/2.2/gdal/configure.in (revision 40036)
@@ -4284,4 +4284,6 @@
POPPLER_BASE_STREAM_HAS_TWO_ARGS=no
POPPLER_0_20_OR_LATER=no
+POPPLER_0_23_OR_LATER=no
+POPPLER_0_58_OR_LATER=no
AC_MSG_CHECKING([for poppler])
@@ -4322,14 +4324,18 @@
POPPLER_PLUGIN_LIB="${TEST_POPPLER_LIB}"
- # And now try another dirty thing, but this one is
- # optional.
- AC_MSG_CHECKING([if Catalog::optContent exists])
+ CHECK_OTHER_POPPLER_VERSION=yes
+
+ # And now we check if we have Poppler >= 0.58.0
+ AC_MSG_CHECKING([if Object does have new API (>= 0.58.0)])
rm -f testpoppler.*
- echo '#define private public' > testpoppler.cpp
- echo '#include <poppler/Object.h>' >> testpoppler.cpp
- echo '#include <poppler/Catalog.h>' >> testpoppler.cpp
- echo 'int main(int argc, char** argv) { return &(((Catalog*)0x8000)->optContent) == 0; }' >> testpoppler.cpp
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo 'int main(int argc, char** argv) { Object o(objNull); return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
+ POPPLER_0_58_OR_LATER=yes
+ POPPLER_0_23_OR_LATER=yes
+ POPPLER_0_20_OR_LATER=yes
+ POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
POPPLER_HAS_OPTCONTENT=yes
+ CHECK_OTHER_POPPLER_VERSION=no
AC_MSG_RESULT([yes])
else
@@ -4337,42 +4343,63 @@
fi
- # And now we check if we have Poppler >= 0.16.0
- AC_MSG_CHECKING([if BaseStream constructor needs 2 arguments])
- rm -f testpoppler.*
- echo '#include <poppler/Object.h>' > testpoppler.cpp
- echo '#include <poppler/Stream.h>' >> testpoppler.cpp
- echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
- echo 'public:' >> testpoppler.cpp
- echo ' TestStream() : BaseStream(0,0) {}' >> 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
- POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
- AC_MSG_RESULT([yes])
-
- # And now we check if we have Poppler >= 0.20.0
- AC_MSG_CHECKING([if we have Poppler >= 0.20.0])
+ if test "$CHECK_OTHER_POPPLER_VERSION" = "yes"; then
+
+ # And now try another dirty thing, but this one is
+ # optional.
+ AC_MSG_CHECKING([if Catalog::optContent exists])
rm -f testpoppler.*
- echo '#include <poppler/Error.h>' > testpoppler.cpp
- echo 'int main(int argc, char** argv) { setErrorCallback(0,0); return 0; }' >> testpoppler.cpp
+ echo '#define private public' > testpoppler.cpp
+ echo '#include <poppler/Object.h>' >> testpoppler.cpp
+ echo '#include <poppler/Catalog.h>' >> testpoppler.cpp
+ echo 'int main(int argc, char** argv) { return &(((Catalog*)0x8000)->optContent) == 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
- POPPLER_0_20_OR_LATER=yes
+ POPPLER_HAS_OPTCONTENT=yes
AC_MSG_RESULT([yes])
-
- # And now we check if we have Poppler >= 0.23.0
- AC_MSG_CHECKING([if we have Poppler >= 0.23.0])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ # And now we check if we have Poppler >= 0.16.0
+ AC_MSG_CHECKING([if BaseStream constructor needs 2 arguments])
+ rm -f testpoppler.*
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo '#include <poppler/Stream.h>' >> testpoppler.cpp
+ echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
+ echo 'public:' >> testpoppler.cpp
+ echo ' TestStream() : BaseStream(0,0) {}' >> 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
+ POPPLER_BASE_STREAM_HAS_TWO_ARGS=yes
+ AC_MSG_RESULT([yes])
+
+ # And now we check if we have Poppler >= 0.20.0
+ AC_MSG_CHECKING([if we have Poppler >= 0.20.0])
rm -f testpoppler.*
- echo '#include <poppler/Object.h>' > testpoppler.cpp
- echo '#include <poppler/Stream.h>' >> testpoppler.cpp
- echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
- echo 'public:' >> testpoppler.cpp
- echo ' TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
- echo ' ~TestStream() {}' >> testpoppler.cpp
- echo ' virtual BaseStream *copy() { return BaseStream::copy(); }' >> testpoppler.cpp
- echo '};' >> testpoppler.cpp
- echo 'int main(int argc, char** argv) { return 0; }' >> testpoppler.cpp
+ echo '#include <poppler/Error.h>' > testpoppler.cpp
+ echo 'int main(int argc, char** argv) { setErrorCallback(0,0); return 0; }' >> testpoppler.cpp
if test -z "`${CXX} testpoppler.cpp -c ${POPPLER_INC} 2>&1`" ; then
- POPPLER_0_23_OR_LATER=yes
+ POPPLER_0_20_OR_LATER=yes
AC_MSG_RESULT([yes])
+
+ # And now we check if we have Poppler >= 0.23.0
+ AC_MSG_CHECKING([if we have Poppler >= 0.23.0])
+ rm -f testpoppler.*
+ echo '#include <poppler/Object.h>' > testpoppler.cpp
+ echo '#include <poppler/Stream.h>' >> testpoppler.cpp
+ echo 'class TestStream: public BaseStream {' >> testpoppler.cpp
+ echo 'public:' >> testpoppler.cpp
+ echo ' TestStream() : BaseStream(0,0) {}' >> testpoppler.cpp
+ echo ' ~TestStream() {}' >> testpoppler.cpp
+ echo ' virtual BaseStream *copy() { return BaseStream::copy(); }' >> 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
+ POPPLER_0_23_OR_LATER=yes
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
else
AC_MSG_RESULT([no])
@@ -4382,7 +4409,4 @@
AC_MSG_RESULT([no])
fi
-
- else
- AC_MSG_RESULT([no])
fi
else
@@ -4400,4 +4424,5 @@
AC_SUBST(POPPLER_0_20_OR_LATER, $POPPLER_0_20_OR_LATER)
AC_SUBST(POPPLER_0_23_OR_LATER, $POPPLER_0_23_OR_LATER)
+AC_SUBST(POPPLER_0_58_OR_LATER, $POPPLER_0_58_OR_LATER)
AC_SUBST(POPPLER_INC, $POPPLER_INC)
AC_SUBST(POPPLER_PLUGIN_LIB, $POPPLER_PLUGIN_LIB)
Index: /branches/2.2/gdal/frmts/pdf/GNUmakefile
===================================================================
--- /branches/2.2/gdal/frmts/pdf/GNUmakefile (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/GNUmakefile (revision 40036)
@@ -32,4 +32,8 @@
endif
+ifeq ($(POPPLER_0_58_OR_LATER),yes)
+CPPFLAGS += -DPOPPLER_0_58_OR_LATER
+endif
+
ifeq ($(HAVE_PODOFO),yes)
CPPFLAGS += -DHAVE_PODOFO
Index: /branches/2.2/gdal/frmts/pdf/makefile.vc
===================================================================
--- /branches/2.2/gdal/frmts/pdf/makefile.vc (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/makefile.vc (revision 40036)
@@ -15,5 +15,5 @@
!IFDEF POPPLER_ENABLED
-POPPLER_EXTRAFLAGS = $(POPPLER_CFLAGS) $(POPPLER_HAS_OPTCONTENT_FLAGS) $(POPPLER_BASE_STREAM_HAS_TWO_ARGS_FLAGS) $(POPPLER_0_20_OR_LATER_FLAGS) $(POPPLER_0_23_OR_LATER_FLAGS) -DHAVE_POPPLER
+POPPLER_EXTRAFLAGS = $(POPPLER_CFLAGS) $(POPPLER_HAS_OPTCONTENT_FLAGS) $(POPPLER_BASE_STREAM_HAS_TWO_ARGS_FLAGS) $(POPPLER_0_20_OR_LATER_FLAGS) $(POPPLER_0_23_OR_LATER_FLAGS) $(POPPLER_0_58_OR_LATER_FLAGS) -DHAVE_POPPLER
!IFDEF POPPLER_HAS_OPTCONTENT
@@ -31,4 +31,8 @@
!IFDEF POPPLER_0_23_OR_LATER
POPPLER_0_23_OR_LATER_FLAGS = -DPOPPLER_0_23_OR_LATER
+!ENDIF
+
+!IFDEF POPPLER_0_58_OR_LATER
+POPPLER_0_58_OR_LATER_FLAGS = -DPOPPLER_0_58_OR_LATER
!ENDIF
Index: /branches/2.2/gdal/frmts/pdf/pdfdataset.cpp
===================================================================
--- /branches/2.2/gdal/frmts/pdf/pdfdataset.cpp (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/pdfdataset.cpp (revision 40036)
@@ -130,5 +130,9 @@
public:
ObjectAutoFree() {}
- ~ObjectAutoFree() { obj.free(); }
+ ~ObjectAutoFree() {
+#ifndef POPPLER_0_58_OR_LATER
+ obj.free();
+#endif
+ }
Object* getObj() { return &obj; }
@@ -2286,5 +2290,9 @@
{
poCatalogObjectPoppler = new ObjectAutoFree;
+#ifdef POPPLER_0_58_OR_LATER
+ *poCatalogObjectPoppler->getObj() = poDocPoppler->getXRef()->getCatalog();
+#else
poDocPoppler->getXRef()->getCatalog(poCatalogObjectPoppler->getObj());
+#endif
if (!poCatalogObjectPoppler->getObj()->isNull())
poCatalogObject = new GDALPDFObjectPoppler(poCatalogObjectPoppler->getObj(), FALSE);
@@ -4027,5 +4035,9 @@
#ifdef HAVE_POPPLER
PDFDoc* poDocPoppler = NULL;
+#ifdef POPPLER_0_58_OR_LATER
+ Object oObj;
+#else
ObjectAutoFree oObj;
+#endif
Page* poPagePoppler = NULL;
Catalog* poCatalogPoppler = NULL;
@@ -4074,6 +4086,10 @@
poUserPwd = new GooString(pszUserPwd);
+#ifdef POPPLER_0_58_OR_LATER
+ poDocPoppler = new PDFDoc(new VSIPDFFileStream(fp, pszFilename, std::move(oObj)), NULL, poUserPwd);
+#else
oObj.getObj()->initNull();
poDocPoppler = new PDFDoc(new VSIPDFFileStream(fp, pszFilename, oObj.getObj()), NULL, poUserPwd);
+#endif
delete poUserPwd;
@@ -4766,8 +4782,14 @@
{
Object oInfo;
+#ifdef POPPLER_0_58_OR_LATER
+ oInfo = poDocPoppler->getDocInfo();
+#else
poDocPoppler->getDocInfo(&oInfo);
+#endif
GDALPDFObjectPoppler oInfoObjPoppler(&oInfo, FALSE);
poDS->ParseInfo(&oInfoObjPoppler);
+#ifndef POPPLER_0_58_OR_LATER
oInfo.free();
+#endif
}
Index: /branches/2.2/gdal/frmts/pdf/pdfio.cpp
===================================================================
--- /branches/2.2/gdal/frmts/pdf/pdfio.cpp (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/pdfio.cpp (revision 40036)
@@ -53,6 +53,10 @@
/************************************************************************/
-VSIPDFFileStream::VSIPDFFileStream(VSILFILE* fIn, const char* pszFilename, Object *dictA):
-#ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS
+VSIPDFFileStream::VSIPDFFileStream(VSILFILE* fIn, const char* pszFilename,
+ makeSubStream_object_type dictA
+) :
+#ifdef POPPLER_0_58_OR_LATER
+ BaseStream(std::move(dictA), (Goffset)VSIPDFFileStreamGetSize(fIn)),
+#elif defined(POPPLER_BASE_STREAM_HAS_TWO_ARGS)
BaseStream(dictA, (setPos_offset_type)VSIPDFFileStreamGetSize(fIn))
#else
@@ -78,6 +82,9 @@
VSIPDFFileStream::VSIPDFFileStream(VSIPDFFileStream* poParentIn,
vsi_l_offset startA, GBool limitedA,
- vsi_l_offset lengthA, Object *dictA):
-#ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS
+ vsi_l_offset lengthA,
+ makeSubStream_object_type dictA) :
+#ifdef POPPLER_0_58_OR_LATER
+ BaseStream(std::move(dictA), (Goffset)lengthA),
+#elif defined(POPPLER_BASE_STREAM_HAS_TWO_ARGS)
BaseStream(dictA, (makeSubStream_offset_type)lengthA)
#else
@@ -116,5 +123,11 @@
/************************************************************************/
-#ifdef POPPLER_0_23_OR_LATER
+#ifdef POPPLER_0_58_OR_LATER
+BaseStream* VSIPDFFileStream::copy()
+{
+ return new VSIPDFFileStream(poParent, nStart, bLimited,
+ nLength, dict.copy());
+}
+#elif defined(POPPLER_0_23_OR_LATER)
BaseStream* VSIPDFFileStream::copy()
{
@@ -127,11 +140,16 @@
/* makeSubStream() */
/************************************************************************/
-
Stream *VSIPDFFileStream::makeSubStream(makeSubStream_offset_type startA, GBool limitedA,
- makeSubStream_offset_type lengthA, Object *dictA)
-{
+ makeSubStream_offset_type lengthA, makeSubStream_object_type dictA)
+{
+#ifdef POPPLER_0_58_OR_LATER
+ return new VSIPDFFileStream(this,
+ startA, limitedA,
+ lengthA, std::move(dictA));
+#else
return new VSIPDFFileStream(this,
startA, limitedA,
lengthA, dictA);
+#endif
}
Index: /branches/2.2/gdal/frmts/pdf/pdfio.h
===================================================================
--- /branches/2.2/gdal/frmts/pdf/pdfio.h (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/pdfio.h (revision 40036)
@@ -53,11 +53,19 @@
+#ifdef POPPLER_0_58_OR_LATER
+#define makeSubStream_object_type Object&&
+#else
+#define makeSubStream_object_type Object*
+#endif
+
class VSIPDFFileStream: public BaseStream
{
public:
- VSIPDFFileStream(VSILFILE* f, const char* pszFilename, Object *dictA);
+ VSIPDFFileStream(VSILFILE* f, const char* pszFilename,
+ makeSubStream_object_type dictA);
VSIPDFFileStream(VSIPDFFileStream* poParent,
vsi_l_offset startA, GBool limitedA,
- vsi_l_offset lengthA, Object *dictA);
+ vsi_l_offset lengthA,
+ makeSubStream_object_type dictA);
virtual ~VSIPDFFileStream();
@@ -67,5 +75,5 @@
virtual Stream * makeSubStream(makeSubStream_offset_type startA, GBool limitedA,
- makeSubStream_offset_type lengthA, Object *dictA);
+ makeSubStream_offset_type lengthA, makeSubStream_object_type dictA) override;
virtual getPos_ret_type getPos();
virtual getStart_ret_type getStart();
Index: /branches/2.2/gdal/frmts/pdf/pdfobject.cpp
===================================================================
--- /branches/2.2/gdal/frmts/pdf/pdfobject.cpp (revision 40035)
+++ /branches/2.2/gdal/frmts/pdf/pdfobject.cpp (revision 40036)
@@ -972,5 +972,7 @@
GDALPDFObjectPoppler::~GDALPDFObjectPoppler()
{
+#ifndef POPPLER_0_58_OR_LATER
m_po->free();
+#endif
if (m_bDestroy)
delete m_po;
@@ -1183,4 +1185,33 @@
return oIter->second;
+#ifdef POPPLER_0_58_OR_LATER
+ Object o = m_poDict->lookupNF(((char*)pszKey));
+ if (!o.isNull())
+ {
+ int nRefNum = 0;
+ int nRefGen = 0;
+ if( o.isRef())
+ {
+ nRefNum = o.getRefNum();
+ nRefGen = o.getRefGen();
+ Object o2 = m_poDict->lookup((char*)pszKey);
+ if( !o2.isNull() )
+ {
+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o2)), TRUE);
+ poObj->SetRefNumAndGen(nRefNum, nRefGen);
+ m_map[pszKey] = poObj;
+ return poObj;
+ }
+ }
+ else
+ {
+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o)), TRUE);
+ poObj->SetRefNumAndGen(nRefNum, nRefGen);
+ m_map[pszKey] = poObj;
+ return poObj;
+ }
+ }
+ return NULL;
+#else
Object* po = new Object;
if (m_poDict->lookupNF((char*)pszKey, po) && !po->isNull())
@@ -1211,4 +1242,5 @@
return NULL;
}
+#endif
}
@@ -1287,4 +1319,33 @@
return m_v[nIndex];
+#ifdef POPPLER_0_58_OR_LATER
+ Object o = m_poArray->getNF(nIndex);
+ if( !o.isNull() )
+ {
+ int nRefNum = 0;
+ int nRefGen = 0;
+ if( o.isRef())
+ {
+ nRefNum = o.getRefNum();
+ nRefGen = o.getRefGen();
+ Object o2 = m_poArray->get(nIndex);
+ if( !o2.isNull() )
+ {
+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o2)), TRUE);
+ poObj->SetRefNumAndGen(nRefNum, nRefGen);
+ m_v[nIndex] = poObj;
+ return poObj;
+ }
+ }
+ else
+ {
+ GDALPDFObjectPoppler* poObj = new GDALPDFObjectPoppler(new Object(std::move(o)), TRUE);
+ poObj->SetRefNumAndGen(nRefNum, nRefGen);
+ m_v[nIndex] = poObj;
+ return poObj;
+ }
+ }
+ return NULL;
+#else
Object* po = new Object;
if (m_poArray->getNF(nIndex, po))
@@ -1315,4 +1376,5 @@
return NULL;
}
+#endif
}
Index: /branches/2.2/gdal/nmake.opt
===================================================================
--- /branches/2.2/gdal/nmake.opt (revision 40035)
+++ /branches/2.2/gdal/nmake.opt (revision 40036)
@@ -622,4 +622,5 @@
# Uncomment POPPLER_0_20_OR_LATER = YES for Poppler >= 0.20.0
# Uncomment POPPLER_0_23_OR_LATER = YES for Poppler >= 0.23.0
+# Uncomment POPPLER_0_58_OR_LATER = YES for Poppler >= 0.58.0
#POPPLER_ENABLED = YES
#POPPLER_CFLAGS = -Ie:/kde/include -Ie:/kde/include/poppler
@@ -628,4 +629,5 @@
#POPPLER_0_20_OR_LATER = YES
#POPPLER_0_23_OR_LATER = YES
+#POPPLER_0_58_OR_LATER = YES
#POPPLER_LIBS = e:/kde/lib/poppler.lib e:/kde/lib/freetype.lib e:/kde/lib/liblcms-1.lib advapi32.lib gdi32.lib

13
gdal-2.2.2-zlib.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/frmts/mrf/mrf_band.cpp b/frmts/mrf/mrf_band.cpp
index c904aa4..cf981da 100644
--- a/frmts/mrf/mrf_band.cpp
+++ b/frmts/mrf/mrf_band.cpp
@@ -49,7 +49,7 @@
#include <vector>
#include <assert.h>
-#include "../zlib/zlib.h"
+#include <zlib.h>
CPL_CVSID("$Id: mrf_band.cpp 37663 2017-03-09 20:42:19Z lplesea $");

View File

@ -1,6 +1,6 @@
#!/bin/bash
# Volker Fröhlich
VERSION="2.1.4"
VERSION="2.2.2"
tar xvf gdal-"${VERSION}".tar.xz

View File

@ -1,60 +1,7 @@
diff -up gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/engribapi.c.g2clib gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/engribapi.c
--- gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/engribapi.c.g2clib 2012-01-04 00:03:34.000000000 -0700
+++ gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/engribapi.c 2012-03-09 12:54:58.582531620 -0700
@@ -419,7 +419,6 @@ int fillSect3 (enGribMeta *en, uShort2 t
double meshLat, double orientLon, double scaleLat1,
double scaleLat2, double southLat, double southLon)
{
- const struct gridtemplate *templatesgrid = get_templatesgrid();
int i; /* loop counter over number of GDS templates. */
double unit; /* Used to convert from stored value to degrees
* lat/lon. See GRIB2 Regulation 92.1.6 */
@@ -641,7 +640,6 @@ int fillSect4_0 (enGribMeta *en, uShort2
double dSurfVal2)
{
int i; /* loop counter over number of PDS templates. */
- const struct pdstemplate *templatespds = get_templatespds();
/* analysis template (0) */
/* In addition templates (1, 2, 5, 8, 9, 12) begin with 4.0 info. */
@@ -1197,7 +1195,6 @@ int fillSect5 (enGribMeta *en, uShort2 t
uChar orderOfDiff)
{
int i; /* loop counter over number of DRS templates. */
- const struct drstemplate *templatesdrs = get_templatesdrs();
/* Find NCEP's template match */
for (i = 0; i < MAXDRSTEMP; i++) {
diff -up gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/grib2api.c.g2clib gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/grib2api.c
--- gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/grib2api.c.g2clib 2012-01-04 00:03:34.000000000 -0700
+++ gdal-1.9.0-fedora/frmts/grib/degrib18/degrib/grib2api.c 2012-03-09 12:55:38.686097396 -0700
@@ -958,7 +958,6 @@ void unpk_g2ncep (sInt4 * kfildo, float
}
curIndex = 14;
for (i = 0; i < gfld->igdtlen; i++) {
- const struct gridtemplate *templatesgrid = get_templatesgrid();
is3[curIndex] = gfld->igdtmpl[i];
curIndex += abs (templatesgrid[gridIndex].mapgrid[i]);
}
@@ -1026,7 +1025,6 @@ void unpk_g2ncep (sInt4 * kfildo, float
}
curIndex = 9;
for (i = 0; i < gfld->ipdtlen; i++) {
- const struct pdstemplate *templatespds = get_templatespds();
is4[curIndex] = gfld->ipdtmpl[i];
curIndex += abs (templatespds[pdsIndex].mappds[i]);
}
@@ -1044,7 +1042,6 @@ void unpk_g2ncep (sInt4 * kfildo, float
}
curIndex = 11;
for (i = 0; i < gfld->idrtlen; i++) {
- const struct drstemplate *templatesdrs = get_templatesdrs();
is5[curIndex] = gfld->idrtmpl[i];
curIndex += abs (templatesdrs[drsIndex].mapdrs[i]);
}
diff -up gdal-1.9.0-fedora/frmts/grib/GNUmakefile.g2clib gdal-1.9.0-fedora/frmts/grib/GNUmakefile
--- gdal-1.9.0-fedora/frmts/grib/GNUmakefile.g2clib 2012-01-04 00:03:34.000000000 -0700
+++ gdal-1.9.0-fedora/frmts/grib/GNUmakefile 2012-03-09 12:05:14.050311275 -0700
diff --git a/frmts/grib/GNUmakefile b/frmts/grib/GNUmakefile
index cd0b260..47e5dde 100644
--- a/frmts/grib/GNUmakefile
+++ b/frmts/grib/GNUmakefile
@@ -7,8 +7,7 @@ include ../../GDALmake.opt
OBJ = gribdataset.o \
clock.o \
@ -63,5 +10,70 @@ diff -up gdal-1.9.0-fedora/frmts/grib/GNUmakefile.g2clib gdal-1.9.0-fedora/frmts
- dec_jpeg2000.o jpcunpack.o jpcpack.o enc_jpeg2000.o
+ degrib2.o inventory.o metaname.o myerror.o tdlpack.o filedatasource.o memorydatasource.o grib1tab.o myutil.o metaparse.o weather.o metaprint.o engribapi.o grib2api.o myassert.o scan.o memendian.o fileendian.o
ifeq ($(HAVE_JASPER),yes)
EXTRAFLAGS := $(EXTRAFLAGS) -DHAVE_JASPER
ifeq ($(PNG_SETTING),internal)
EXTRAFLAGS := $(EXTRAFLAGS) -I../png/libpng -DUSE_PNG
@@ -20,7 +19,7 @@ endif
ifeq ($(PNG_SETTING),external)
EXTRAFLAGS := $(EXTRAFLAGS) -DUSE_PNG
-OBJ := $(OBJ) pngpack.o pngunpack.o enc_png.o dec_png.o
+OBJ := $(OBJ)
endif
CPPFLAGS := $(CPPFLAGS) $(EXTRAFLAGS)
diff --git a/frmts/grib/degrib18/degrib/engribapi.c b/frmts/grib/degrib18/degrib/engribapi.c
index 9f64e8b..d9f2b96 100644
--- a/frmts/grib/degrib18/degrib/engribapi.c
+++ b/frmts/grib/degrib18/degrib/engribapi.c
@@ -419,7 +419,6 @@ int fillSect3 (enGribMeta *en, uShort2 tmplNum, double majEarth,
double meshLat, double orientLon, double scaleLat1,
double scaleLat2, double southLat, double southLon)
{
- const struct gridtemplate *templatesgrid = get_templatesgrid();
int i; /* loop counter over number of GDS templates. */
double unit; /* Used to convert from stored value to degrees
* lat/lon. See GRIB2 Regulation 92.1.6 */
@@ -641,7 +640,6 @@ int fillSect4_0 (enGribMeta *en, uShort2 tmplNum, uChar cat, uChar subCat,
double dSurfVal2)
{
int i; /* loop counter over number of PDS templates. */
- const struct pdstemplate *templatespds = get_templatespds();
/* analysis template (0) */
/* In addition templates (1, 2, 5, 8, 9, 12) begin with 4.0 info. */
@@ -1197,7 +1195,6 @@ int fillSect5 (enGribMeta *en, uShort2 tmplNum, sShort2 BSF, sShort2 DSF,
uChar orderOfDiff)
{
int i; /* loop counter over number of DRS templates. */
- const struct drstemplate *templatesdrs = get_templatesdrs();
/* Find NCEP's template match */
for (i = 0; i < MAXDRSTEMP; i++) {
diff --git a/frmts/grib/degrib18/degrib/grib2api.c b/frmts/grib/degrib18/degrib/grib2api.c
index 78e8c50..1724805 100644
--- a/frmts/grib/degrib18/degrib/grib2api.c
+++ b/frmts/grib/degrib18/degrib/grib2api.c
@@ -961,7 +961,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfildo, float * ain, sInt4 * iain, sInt4 *
}
curIndex = 14;
for (i = 0; i < gfld->igdtlen; i++) {
- const struct gridtemplate *templatesgrid = get_templatesgrid();
is3[curIndex] = gfld->igdtmpl[i];
curIndex += abs (templatesgrid[gridIndex].mapgrid[i]);
}
@@ -1029,7 +1028,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfildo, float * ain, sInt4 * iain, sInt4 *
}
curIndex = 9;
for (i = 0; i < gfld->ipdtlen; i++) {
- const struct pdstemplate *templatespds = get_templatespds();
is4[curIndex] = gfld->ipdtmpl[i];
curIndex += abs (templatespds[pdsIndex].mappds[i]);
}
@@ -1047,7 +1045,6 @@ void unpk_g2ncep (CPL_UNUSED sInt4 * kfildo, float * ain, sInt4 * iain, sInt4 *
}
curIndex = 11;
for (i = 0; i < gfld->idrtlen; i++) {
- const struct drstemplate *templatesdrs = get_templatesdrs();
is5[curIndex] = gfld->idrtmpl[i];
curIndex += abs (templatesdrs[drsIndex].mapdrs[i]);
}

View File

@ -1,12 +0,0 @@
diff -up gdal-2.1.2-fedora/frmts/jpeg2000/jpeg2000_vsil_io.cpp.uchar~ gdal-2.1.2-fedora/frmts/jpeg2000/jpeg2000_vsil_io.cpp
--- gdal-2.1.2-fedora/frmts/jpeg2000/jpeg2000_vsil_io.cpp.uchar~ 2016-12-01 09:14:51.768247534 -0700
+++ gdal-2.1.2-fedora/frmts/jpeg2000/jpeg2000_vsil_io.cpp 2016-12-01 09:15:14.503375681 -0700
@@ -209,7 +209,7 @@ static void JPEG2000_VSIL_jas_stream_ini
/* The buffer must be large enough to accommodate maximum
putback. */
assert(bufsize > JAS_STREAM_MAXPUTBACK);
- stream->bufbase_ = JAS_CAST(uchar *, buf);
+ stream->bufbase_ = JAS_CAST(unsigned char *, buf);
stream->bufsize_ = bufsize - JAS_STREAM_MAXPUTBACK;
}
} else {

View File

@ -24,7 +24,7 @@
%global proj_somaj 12
# Tests can be of a different version
%global testversion 2.1.4
%global testversion 2.2.2
%global run_tests 0
%global compdir %(dirname $(pkg-config --variable=compatdir bash-completion))
@ -67,8 +67,8 @@
%endif
Name: gdal
Version: 2.1.4
Release: 11%{?dist}%{?bootstrap:.%{bootstrap}.bootstrap}
Version: 2.2.2
Release: 1%{?dist}%{?bootstrap:.%{bootstrap}.bootstrap}
Summary: GIS file format library
Group: System Environment/Libraries
License: MIT
@ -91,14 +91,11 @@ Patch1: %{name}-g2clib.patch
Patch2: %{name}-jni.patch
# Fix bash-completion install dir
Patch3: %{name}-completion.patch
# Fix uchar type
Patch4: %{name}-uchar.patch
# Fedora uses Alternatives for Java
Patch8: %{name}-1.9.0-java.patch
Patch9: %{name}-2.1.0-zlib.patch
Patch10: %{name}-2.1.4-poppler-0.58.patch
Patch9: %{name}-2.2.2-zlib.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -334,10 +331,8 @@ rm -r frmts/grib/degrib18/g2clib-1.0.4
%patch1 -p1 -b .g2clib~
%patch2 -p1 -b .jni~
%patch3 -p1 -b .completion~
%patch4 -p1 -b .uchar~
%patch8 -p1 -b .java~
%patch9 -p1 -b .zlib~
%patch10 -p4 -b .poppler~
# Copy in PROVENANCE.TXT-fedora
cp -p %SOURCE4 .
@ -798,6 +793,8 @@ popd
%{_bindir}/8211*
%{_bindir}/s57*
%{_bindir}/testepsg
%{_bindir}/gnmanalyse
%{_bindir}/gnmmanage
%{_mandir}/man1/gdal*.1*
%exclude %{_mandir}/man1/gdal-config.1*
%exclude %{_mandir}/man1/gdal2tiles.1*
@ -856,6 +853,7 @@ popd
%{python2_sitearch}/osr.py*
%{python2_sitearch}/ogr.py*
%{python2_sitearch}/gdal*.py*
%{python2_sitearch}/gnm.py*
%files python3
%doc swig/python/README.txt
@ -868,6 +866,8 @@ popd
%{python3_sitearch}/__pycache__/ogr.*.py*
%{python3_sitearch}/gdal*.py
%{python3_sitearch}/__pycache__/gdal*.*.py*
%{python3_sitearch}/gnm.py*
%{python3_sitearch}/__pycache__/gnm.*.py*
%files doc
%doc gdal_frmts ogrsf_frmts refman
@ -881,6 +881,10 @@ popd
#Or as before, using ldconfig
%changelog
* Fri Sep 22 2017 Volker Froehlich <volker27@gmx.at> - 2.2.2-1
- New upstream release
- Add new entries to the files sections
* Sun Sep 17 2017 Rex Dieter <rdieter@fedoraproject.org> - 2.1.4-11
- rebuild (armadillo)

View File

@ -1,2 +1,2 @@
SHA512 (gdal-2.1.4-fedora.tar.xz) = f01c4dde28f7068b8c1c663d42678832d93003e9fd070acc7a7d637f7d9bece5d76e0b47d599ae6ffe3e4907e8ce17d1fe848e1be772a07cd685a84fdf6d96e9
SHA512 (gdalautotest-2.1.4.tar.gz) = 92cc88b424ce82db55ae44f47ac649530f08ba53e88f78250cfe6c05853fb2e213b3b838365384686e39bc65bfb88c8473a990e7987a5c5ca404764521a65757
SHA512 (gdal-2.2.2-fedora.tar.xz) = 4f735baa1a6cf1e0717fbf6d92deb67d60f106a4b686ef346a2fc49956db80a8611ead819ba9803b0ae054759942564f31d0da7d17c744d4343edb698cee0b28
SHA512 (gdalautotest-2.2.2.tar.gz) = 7379244673d73ce2ea7b284c1447b1a5eb5fb53a6acd3ca33a45c605b804d952a63bb31831b67db8c2df900a73493f86366413f720e776234591ea9a7495da94