[arch-commits] Commit in gdal/repos (10 files)

Andreas Radke andyrtr at archlinux.org
Wed Sep 13 19:59:04 UTC 2017


    Date: Wednesday, September 13, 2017 @ 19:59:03
  Author: andyrtr
Revision: 257487

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  gdal/repos/community-staging-i686/
  gdal/repos/community-staging-i686/PKGBUILD
    (from rev 257486, gdal/trunk/PKGBUILD)
  gdal/repos/community-staging-i686/gdal-2.2-poppler-0.58.patch
    (from rev 257486, gdal/trunk/gdal-2.2-poppler-0.58.patch)
  gdal/repos/community-staging-i686/gdal-perl-vendor.patch
    (from rev 257486, gdal/trunk/gdal-perl-vendor.patch)
  gdal/repos/community-staging-i686/gdal.changelog
    (from rev 257486, gdal/trunk/gdal.changelog)
  gdal/repos/community-staging-x86_64/
  gdal/repos/community-staging-x86_64/PKGBUILD
    (from rev 257486, gdal/trunk/PKGBUILD)
  gdal/repos/community-staging-x86_64/gdal-2.2-poppler-0.58.patch
    (from rev 257486, gdal/trunk/gdal-2.2-poppler-0.58.patch)
  gdal/repos/community-staging-x86_64/gdal-perl-vendor.patch
    (from rev 257486, gdal/trunk/gdal-perl-vendor.patch)
  gdal/repos/community-staging-x86_64/gdal.changelog
    (from rev 257486, gdal/trunk/gdal.changelog)

------------------------------------------------------+
 community-staging-i686/PKGBUILD                      |   86 ++
 community-staging-i686/gdal-2.2-poppler-0.58.patch   |  625 +++++++++++++++++
 community-staging-i686/gdal-perl-vendor.patch        |   28 
 community-staging-i686/gdal.changelog                |   87 ++
 community-staging-x86_64/PKGBUILD                    |   86 ++
 community-staging-x86_64/gdal-2.2-poppler-0.58.patch |  625 +++++++++++++++++
 community-staging-x86_64/gdal-perl-vendor.patch      |   28 
 community-staging-x86_64/gdal.changelog              |   87 ++
 8 files changed, 1652 insertions(+)

Copied: gdal/repos/community-staging-i686/PKGBUILD (from rev 257486, gdal/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD	                        (rev 0)
+++ community-staging-i686/PKGBUILD	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,86 @@
+# $Id$
+# Maintainer: Jaroslav Lichtblau <svetlemodry at archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly at gmail.com>
+
+pkgname=gdal
+pkgver=2.2.1
+pkgrel=5
+pkgdesc="A translator library for raster geospatial data formats"
+arch=('i686' 'x86_64')
+url="http://www.gdal.org/"
+license=('custom')
+depends=('curl' 'geos' 'giflib' 'hdf5' 'libgeotiff' 'libjpeg-turbo' 'libpng' 'libspatialite' 'libtiff' 'netcdf'
+         'openjpeg2' 'poppler' 'python2' 'python2-numpy' 'cfitsio' 'sqlite' 'libmariadbclient' 'postgresql-libs')
+makedepends=('perl' 'swig' 'chrpath' 'doxygen')
+optdepends=('postgresql: postgresql database support'
+            'mariadb: mariadb database support'
+            'perl:  perl binding support')
+options=('!emptydirs')
+changelog=$pkgname.changelog
+source=(http://download.osgeo.org/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz
+        gdal-perl-vendor.patch
+        gdal-2.2-poppler-0.58.patch)
+sha256sums=('927098d54083ac919a497f787b835b099e9a194f2e5444dbff901f7426b86066'
+            '20989e5fa499206b42c92280ce084fdf7b2f661a4233fc349611cc57102fe114'
+            '17bbcfed72cdc346f1b5bb83247eb51e93ddcf0b00c8bf5e246338a2fb8a567d')
+
+prepare() {
+  cd "${srcdir}"/$pkgname-$pkgver
+
+# python2 fixes
+  sed -i 's_python python1.5_python2 python python1.5_' configure
+  for file in swig/python/{,osgeo/,samples/,scripts/}*.py; do
+      sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+  done
+
+# Fix mandir
+  sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure
+
+# Fix Perl bindings installation path
+  patch -Np1 -i ../gdal-perl-vendor.patch
+
+# poppler 0.58.x API change
+# https://trac.osgeo.org/gdal/changeset/40036
+  patch -Np4 -i ../gdal-2.2-poppler-0.58.patch
+}
+
+build() {
+  cd "${srcdir}"/$pkgname-$pkgver
+  export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+# bug #23654
+  export LDFLAGS="$LDFLAGS -Wl,--as-needed"
+
+  ./configure --prefix=/usr --with-netcdf --with-libtiff --with-sqlite3 --with-geotiff \
+              --with-mysql --with-python --with-curl --with-hdf5 --with-perl --with-geos \
+              --with-png --with-poppler --with-spatialite --with-openjpeg
+
+# workaround for bug #13646
+  sed -i 's/PY_HAVE_SETUPTOOLS=1/PY_HAVE_SETUPTOOLS=/g' ./GDALmake.opt
+  sed -i 's/EXE_DEP_LIBS/KILL_EXE_DEP_LIBS/' apps/GNUmakefile
+
+  make
+  make man
+}
+
+package () {
+  cd "${srcdir}"/$pkgname-$pkgver
+
+  make DESTDIR="${pkgdir}" install
+  make DESTDIR="${pkgdir}" install-man
+
+# install license
+  install -Dm644 LICENSE.TXT "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+
+#FS15477 clean up junks - still present in 2.2.1
+  rm -f "${pkgdir}"/usr/share/man/man1/_build_gdal_src_gdal-${pkgver}_apps_.1
+
+# Remove RPATH
+  eval local $(perl -V:vendorarch)
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/OSR/OSR.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/OGR/OGR.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GDAL/GDAL.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GDAL/Const/Const.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GNM/GNM.so
+}

Copied: gdal/repos/community-staging-i686/gdal-2.2-poppler-0.58.patch (from rev 257486, gdal/trunk/gdal-2.2-poppler-0.58.patch)
===================================================================
--- community-staging-i686/gdal-2.2-poppler-0.58.patch	                        (rev 0)
+++ community-staging-i686/gdal-2.2-poppler-0.58.patch	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,625 @@
+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.ac
+===================================================================
+--- /branches/2.2/gdal/configure.ac	(revision 40035)
++++ /branches/2.2/gdal/configure.ac	(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
++    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 @@
+ #endif
+ 
++#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) override;
++                                         makeSubStream_offset_type lengthA, makeSubStream_object_type dictA) override;
+         virtual getPos_ret_type      getPos() override;
+         virtual getStart_ret_type    getStart() override;
+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
+ 

Copied: gdal/repos/community-staging-i686/gdal-perl-vendor.patch (from rev 257486, gdal/trunk/gdal-perl-vendor.patch)
===================================================================
--- community-staging-i686/gdal-perl-vendor.patch	                        (rev 0)
+++ community-staging-i686/gdal-perl-vendor.patch	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,28 @@
+Description: pass INSTALLDIRS=vendor to Makefile.PL to get stuff into the right place
+Origin: vendor
+Forwarded: not-needed
+Author: gregor herrmann <gregoa at debian.org>
+Last-Update: 2014-07-08
+
+--- a/swig/perl/Makefile
++++ b/swig/perl/Makefile
+@@ -7,7 +7,7 @@ build: Makefile_Geo__GDAL
+ 	$(MAKE) -f Makefile_Geo__OSR
+ 
+ Makefile_Geo__GDAL:
+-	perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
++	perl Makefile.PL INSTALLDIRS=vendor
+ 
+ test: build
+ 	$(MAKE) -f Makefile_Geo__GDAL test
+--- a/swig/perl/GNUmakefile
++++ b/swig/perl/GNUmakefile
+@@ -30,7 +30,7 @@ build: gdal_wrap.cc Makefile_Geo__GDAL
+ gdal_wrap.cc: generate
+ 
+ Makefile_Geo__GDAL:
+-	perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
++	perl Makefile.PL INSTALLDIRS=vendor
+ 
+ test: build
+ 	$(MAKE) -f Makefile_Geo__GDAL test

Copied: gdal/repos/community-staging-i686/gdal.changelog (from rev 257486, gdal/trunk/gdal.changelog)
===================================================================
--- community-staging-i686/gdal.changelog	                        (rev 0)
+++ community-staging-i686/gdal.changelog	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,87 @@
+2017-08-06 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.2.1-1
+
+2017-07-10 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.2.0-1
+	* hdf5 1.10.1 rebuild
+
+2017-01-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.2-1
+
+2016-08-02 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.1-1 glew 2.0.0 / poppler 0.46.0 rebuilds rebuild
+
+2016-06-05 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.0-2 cfitsio 3.390 rebuild
+
+2016-05-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.0-1
+
+2016-04-12 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.2-5
+	* hdf5 1.10.0 rebuild
+
+2016-02-08 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.2-1
+
+2016-01-23 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.0-7
+	* postgresql-libs 9.5 rebuild
+	* openjpeg2 added as dependency
+
+2015-10-06 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.1-2 FS#46581 fix
+
+2015-06-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.0-1
+
+2015-03-01 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.2-2 poppler 0.31.0 rebuild
+
+2015-02-23 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.2-1
+
+2015-01-29 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-6 poppler 0.30.0 rebuild
+
+2014-12-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-5 FS#43193 fix
+
+2014-12-20 Evangelos Foutras <evangelos at foutrelis.com>
+	* gdal 1.11.1-4 poppler 0.29.0 rebuild
+
+2014-11-25 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-3 hdf5 1.8.14 rebuild
+
+2014-10-03 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-1
+
+2014-07-28 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-4 libspatialite soname rebuild
+
+2014-05-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-2 giflib soname rebuild
+
+2014-04-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-1
+
+2013-11-11 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.1-1
+
+2013-09-29 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.0-4 FS#36328 fix
+
+2013-05-18 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.0-1
+
+2011-02-19 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.8.0-1
+
+2010-11-20 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* Update to major release 1.7.3
+
+2010-06-26 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* FS#19946 fixed in 1.7.2-2
+
+2010-05-05 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* Update to major release 1.7.2

Copied: gdal/repos/community-staging-x86_64/PKGBUILD (from rev 257486, gdal/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,86 @@
+# $Id$
+# Maintainer: Jaroslav Lichtblau <svetlemodry at archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly at gmail.com>
+
+pkgname=gdal
+pkgver=2.2.1
+pkgrel=5
+pkgdesc="A translator library for raster geospatial data formats"
+arch=('i686' 'x86_64')
+url="http://www.gdal.org/"
+license=('custom')
+depends=('curl' 'geos' 'giflib' 'hdf5' 'libgeotiff' 'libjpeg-turbo' 'libpng' 'libspatialite' 'libtiff' 'netcdf'
+         'openjpeg2' 'poppler' 'python2' 'python2-numpy' 'cfitsio' 'sqlite' 'libmariadbclient' 'postgresql-libs')
+makedepends=('perl' 'swig' 'chrpath' 'doxygen')
+optdepends=('postgresql: postgresql database support'
+            'mariadb: mariadb database support'
+            'perl:  perl binding support')
+options=('!emptydirs')
+changelog=$pkgname.changelog
+source=(http://download.osgeo.org/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz
+        gdal-perl-vendor.patch
+        gdal-2.2-poppler-0.58.patch)
+sha256sums=('927098d54083ac919a497f787b835b099e9a194f2e5444dbff901f7426b86066'
+            '20989e5fa499206b42c92280ce084fdf7b2f661a4233fc349611cc57102fe114'
+            '17bbcfed72cdc346f1b5bb83247eb51e93ddcf0b00c8bf5e246338a2fb8a567d')
+
+prepare() {
+  cd "${srcdir}"/$pkgname-$pkgver
+
+# python2 fixes
+  sed -i 's_python python1.5_python2 python python1.5_' configure
+  for file in swig/python/{,osgeo/,samples/,scripts/}*.py; do
+      sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+  done
+
+# Fix mandir
+  sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure
+
+# Fix Perl bindings installation path
+  patch -Np1 -i ../gdal-perl-vendor.patch
+
+# poppler 0.58.x API change
+# https://trac.osgeo.org/gdal/changeset/40036
+  patch -Np4 -i ../gdal-2.2-poppler-0.58.patch
+}
+
+build() {
+  cd "${srcdir}"/$pkgname-$pkgver
+  export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+# bug #23654
+  export LDFLAGS="$LDFLAGS -Wl,--as-needed"
+
+  ./configure --prefix=/usr --with-netcdf --with-libtiff --with-sqlite3 --with-geotiff \
+              --with-mysql --with-python --with-curl --with-hdf5 --with-perl --with-geos \
+              --with-png --with-poppler --with-spatialite --with-openjpeg
+
+# workaround for bug #13646
+  sed -i 's/PY_HAVE_SETUPTOOLS=1/PY_HAVE_SETUPTOOLS=/g' ./GDALmake.opt
+  sed -i 's/EXE_DEP_LIBS/KILL_EXE_DEP_LIBS/' apps/GNUmakefile
+
+  make
+  make man
+}
+
+package () {
+  cd "${srcdir}"/$pkgname-$pkgver
+
+  make DESTDIR="${pkgdir}" install
+  make DESTDIR="${pkgdir}" install-man
+
+# install license
+  install -Dm644 LICENSE.TXT "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+
+#FS15477 clean up junks - still present in 2.2.1
+  rm -f "${pkgdir}"/usr/share/man/man1/_build_gdal_src_gdal-${pkgver}_apps_.1
+
+# Remove RPATH
+  eval local $(perl -V:vendorarch)
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/OSR/OSR.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/OGR/OGR.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GDAL/GDAL.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GDAL/Const/Const.so
+  chrpath --delete "${pkgdir}"${vendorarch}/auto/Geo/GNM/GNM.so
+}

Copied: gdal/repos/community-staging-x86_64/gdal-2.2-poppler-0.58.patch (from rev 257486, gdal/trunk/gdal-2.2-poppler-0.58.patch)
===================================================================
--- community-staging-x86_64/gdal-2.2-poppler-0.58.patch	                        (rev 0)
+++ community-staging-x86_64/gdal-2.2-poppler-0.58.patch	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,625 @@
+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.ac
+===================================================================
+--- /branches/2.2/gdal/configure.ac	(revision 40035)
++++ /branches/2.2/gdal/configure.ac	(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
++    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 @@
+ #endif
+ 
++#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) override;
++                                         makeSubStream_offset_type lengthA, makeSubStream_object_type dictA) override;
+         virtual getPos_ret_type      getPos() override;
+         virtual getStart_ret_type    getStart() override;
+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
+ 

Copied: gdal/repos/community-staging-x86_64/gdal-perl-vendor.patch (from rev 257486, gdal/trunk/gdal-perl-vendor.patch)
===================================================================
--- community-staging-x86_64/gdal-perl-vendor.patch	                        (rev 0)
+++ community-staging-x86_64/gdal-perl-vendor.patch	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,28 @@
+Description: pass INSTALLDIRS=vendor to Makefile.PL to get stuff into the right place
+Origin: vendor
+Forwarded: not-needed
+Author: gregor herrmann <gregoa at debian.org>
+Last-Update: 2014-07-08
+
+--- a/swig/perl/Makefile
++++ b/swig/perl/Makefile
+@@ -7,7 +7,7 @@ build: Makefile_Geo__GDAL
+ 	$(MAKE) -f Makefile_Geo__OSR
+ 
+ Makefile_Geo__GDAL:
+-	perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
++	perl Makefile.PL INSTALLDIRS=vendor
+ 
+ test: build
+ 	$(MAKE) -f Makefile_Geo__GDAL test
+--- a/swig/perl/GNUmakefile
++++ b/swig/perl/GNUmakefile
+@@ -30,7 +30,7 @@ build: gdal_wrap.cc Makefile_Geo__GDAL
+ gdal_wrap.cc: generate
+ 
+ Makefile_Geo__GDAL:
+-	perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
++	perl Makefile.PL INSTALLDIRS=vendor
+ 
+ test: build
+ 	$(MAKE) -f Makefile_Geo__GDAL test

Copied: gdal/repos/community-staging-x86_64/gdal.changelog (from rev 257486, gdal/trunk/gdal.changelog)
===================================================================
--- community-staging-x86_64/gdal.changelog	                        (rev 0)
+++ community-staging-x86_64/gdal.changelog	2017-09-13 19:59:03 UTC (rev 257487)
@@ -0,0 +1,87 @@
+2017-08-06 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.2.1-1
+
+2017-07-10 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.2.0-1
+	* hdf5 1.10.1 rebuild
+
+2017-01-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.2-1
+
+2016-08-02 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.1-1 glew 2.0.0 / poppler 0.46.0 rebuilds rebuild
+
+2016-06-05 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.0-2 cfitsio 3.390 rebuild
+
+2016-05-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.1.0-1
+
+2016-04-12 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.2-5
+	* hdf5 1.10.0 rebuild
+
+2016-02-08 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.2-1
+
+2016-01-23 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.0-7
+	* postgresql-libs 9.5 rebuild
+	* openjpeg2 added as dependency
+
+2015-10-06 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.1-2 FS#46581 fix
+
+2015-06-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 2.0.0-1
+
+2015-03-01 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.2-2 poppler 0.31.0 rebuild
+
+2015-02-23 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.2-1
+
+2015-01-29 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-6 poppler 0.30.0 rebuild
+
+2014-12-22 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-5 FS#43193 fix
+
+2014-12-20 Evangelos Foutras <evangelos at foutrelis.com>
+	* gdal 1.11.1-4 poppler 0.29.0 rebuild
+
+2014-11-25 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-3 hdf5 1.8.14 rebuild
+
+2014-10-03 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.1-1
+
+2014-07-28 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-4 libspatialite soname rebuild
+
+2014-05-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-2 giflib soname rebuild
+
+2014-04-27 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.11.0-1
+
+2013-11-11 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.1-1
+
+2013-09-29 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.0-4 FS#36328 fix
+
+2013-05-18 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.10.0-1
+
+2011-02-19 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* gdal 1.8.0-1
+
+2010-11-20 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* Update to major release 1.7.3
+
+2010-06-26 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* FS#19946 fixed in 1.7.2-2
+
+2010-05-05 Jaroslav Lichtblau <svetlemodry at archlinux.org>
+	* Update to major release 1.7.2



More information about the arch-commits mailing list