community/gdal to 3.4.0-5

This commit is contained in:
Kevin Mihelich 2022-03-03 13:50:05 +00:00
parent 7fa18b1ac1
commit 7d2297f4f3
2 changed files with 60 additions and 1 deletions

View file

@ -9,7 +9,7 @@
pkgbase=gdal
pkgname=('gdal' 'python-gdal')
pkgver=3.4.0
pkgrel=3
pkgrel=5
pkgdesc="A translator library for raster geospatial data formats"
arch=('x86_64')
url="https://gdal.org/"
@ -23,8 +23,10 @@ optdepends=('postgresql: postgresql database support'
options=('!emptydirs')
changelog=$pkgbase.changelog
source=(https://download.osgeo.org/${pkgbase}/${pkgver}/${pkgbase}-${pkgver}.tar.xz
poppler-22.03.0.patch
gdal-perl-vendor.patch)
sha256sums=('ac7bd2bb9436f3fc38bc7309704672980f82d64b4d57627d27849259b8f71d5c'
'b60d94457199ab49ff11cbbb793cd6cd459c732265d342f1c04721f164383e73'
'2103b98f2f15954f042d5620658b30d703125927bde2e5eb671c5facb6c2f5ed')
prepare() {
@ -33,6 +35,9 @@ prepare() {
# Fix mandir
sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure
# Fix build with poppler 22.03.0
patch -Np1 -i "${srcdir}"/poppler-22.03.0.patch
# Fix Perl bindings installation path
patch -Np0 -i "${srcdir}"/gdal-perl-vendor.patch
}

View file

@ -0,0 +1,54 @@
From 17e98757e78969a199d1d6318f53d088da192191 Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Fri, 18 Feb 2022 22:47:01 +0100
Subject: [PATCH] PDF: fix build against Poppler > 22.2
---
frmts/pdf/pdfdataset.cpp | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/frmts/pdf/pdfdataset.cpp b/frmts/pdf/pdfdataset.cpp
index 22238bd74822..08f8e31c86a7 100644
--- a/frmts/pdf/pdfdataset.cpp
+++ b/frmts/pdf/pdfdataset.cpp
@@ -4241,8 +4241,6 @@ PDFDataset *PDFDataset::Open( GDALOpenInfo * poOpenInfo )
#ifdef HAVE_POPPLER
if(bUseLib.test(PDFLIB_POPPLER))
{
- GooString* poUserPwd = nullptr;
-
static bool globalParamsCreatedByGDAL = false;
{
CPLMutexHolderD(&hGlobalParamsMutex);
@@ -4310,9 +4308,6 @@ PDFDataset *PDFDataset::Open( GDALOpenInfo * poOpenInfo )
while( true )
{
VSIFSeekL(fp, 0, SEEK_SET);
- if (pszUserPwd)
- poUserPwd = new GooString(pszUserPwd);
-
g_nPopplerErrors = 0;
if( globalParamsCreatedByGDAL )
registerErrorCallback();
@@ -4322,10 +4317,20 @@ PDFDataset *PDFDataset::Open( GDALOpenInfo * poOpenInfo )
oObj.getObj()->initNull();
auto poStream = new VSIPDFFileStream(fp, pszFilename, oObj.getObj());
#endif
+#if POPPLER_MAJOR_VERSION > 22 || (POPPLER_MAJOR_VERSION == 22 && POPPLER_MINOR_VERSION > 2)
+ std::optional<GooString> osUserPwd;
+ if (pszUserPwd)
+ osUserPwd = std::optional<GooString>(pszUserPwd);
+ poDocPoppler = new PDFDoc(poStream, std::optional<GooString>(), osUserPwd);
+#else
+ GooString* poUserPwd = nullptr;
+ if (pszUserPwd)
+ poUserPwd = new GooString(pszUserPwd);
poDocPoppler = new PDFDoc(poStream, nullptr, poUserPwd);
+ delete poUserPwd;
+#endif
if( globalParamsCreatedByGDAL )
registerErrorCallback();
- delete poUserPwd;
if( g_nPopplerErrors >= MAX_POPPLER_ERRORS )
{
PDFFreeDoc(poDocPoppler);