commit:     469204d2eb46c95572471d9fea1b2339b334c314
Author:     Amy Winston <amynka <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 18 18:28:31 2016 +0000
Commit:     Amy Winston <amynka <AT> gentoo <DOT> org>
CommitDate: Mon Jan 18 18:28:31 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=469204d2

sci-geosciences/merkaartor: compatibility with gdal bug #554304. By wraeth

Package-Manager: portage-2.2.24

 sci-geosciences/merkaartor/Manifest                |   1 -
 .../merkaartor/files/merkaartor-gdal-2-fix.patch   | 212 +++++++++++++++++++++
 ....18.1-r1.ebuild => merkaartor-0.18.1-r2.ebuild} |   6 +-
 .../merkaartor/merkaartor-0.18.1.ebuild            |  69 -------
 4 files changed, 217 insertions(+), 71 deletions(-)

diff --git a/sci-geosciences/merkaartor/Manifest 
b/sci-geosciences/merkaartor/Manifest
index 9950ede..1b431ef 100644
--- a/sci-geosciences/merkaartor/Manifest
+++ b/sci-geosciences/merkaartor/Manifest
@@ -1,3 +1,2 @@
 DIST merkaartor-0.17.2.tar.bz2 7138991 SHA256 
425f4facefbf20a3dd1a09ee61ff8a8912482d1a30c957c50869d8ff59ba702a SHA512 
3718131d855ad6ea17537c7879a3249f25f6f5aaaf00e2e59df10c5497a628f0877f85129a209d11dc969b5771598f9989cc6ca3a972dab4c3eaef507784d4ed
 WHIRLPOOL 
22a07736e7da44d3799831352d0e9d323143f228dcf7693b6f90fe101a8a04c74c2c5186db15723902b7dd8aadd93a78547e4622b5238ceb7074027e987b8487
-DIST merkaartor-0.18.1.tar.bz2 5579080 SHA256 
3d6a96599815d5f1c8558acd255a413ea47b93ddad8414147d11775a6f21139f SHA512 
d45b25ad5a7f19b32ca3e91ad514ef1a8450024bdab9e8c215f60a5ec3fc6332a5cadfcec586a32805c7727d224588b504b01d3023120d55476660a8a394cd45
 WHIRLPOOL 
23327a7eaa91531a95665fe9ff647712606babf96e3843ef33b94a37f6f7ca6d1cb09576b0b31197badc32e87cfc7ca275a9e3792e57f57dd58fe0509ec1b46d
 DIST merkaartor-0.18.1.tar.gz 6459640 SHA256 
e9fa5e30e6392c9224f73e9bb7d17b66c4eb6c023633eb2af0cf58ba8acf684f SHA512 
5ccb2aca7463cd3b31790b0f231cd18f4499b38ec3eb14c3600bdaae880194a71aaf63a2c2f814af6277b1b07fd618b4393309aa5ded375940bd464d1e77d71d
 WHIRLPOOL 
fde10a93510c123f2e1065ad745c3abc7860892c55ed615e75214dd172bfbec1da6f254377cc2d6e0f1df6f9d0680d0f7878ba3224651f5b09c590c335211d9c

diff --git a/sci-geosciences/merkaartor/files/merkaartor-gdal-2-fix.patch 
b/sci-geosciences/merkaartor/files/merkaartor-gdal-2-fix.patch
new file mode 100644
index 0000000..4197610
--- /dev/null
+++ b/sci-geosciences/merkaartor/files/merkaartor-gdal-2-fix.patch
@@ -0,0 +1,212 @@
+--- a/src/ImportExport/ImportExportGdal.cpp 2015-06-15 18:48:39.604575423 +0200
++++ b/src/ImportExport/ImportExportGdal.cpp 2015-06-15 18:48:39.604575423 +0200
+@@ -21,10 +21,13 @@
+ #include "ProjectionChooser.h"
+ #include "Global.h"
+ 
+-#include "cpl_vsi.h"
++#include <cpl_vsi.h>
++#include <gdal.h>
++#include <gdal_priv.h>
+ 
+ #include <QDir>
+ 
++
+ bool parseContainer(QDomElement& e, Layer* aLayer);
+ 
+ ImportExportGdal::ImportExportGdal(Document* doc)
+@@ -55,6 +58,55 @@ bool ImportExportGdal::saveFile(QString)
+ bool ImportExportGdal::export_(const QList<Feature *>& featList)
+ {
+     const char *pszDriverName = "SQLite";
++    QString fileName(HOMEDIR + "/test.sqlite");
++#ifdef GDAL2
++    GDALDriver *poDriver;
++    GDALDriverManager *driverManager = GetGDALDriverManager();
++    GDALAllRegister();
++    driverManager->AutoLoadDrivers();
++
++    poDriver = driverManager->GetDriverByName(pszDriverName);
++    if( poDriver == NULL )
++    {
++        qDebug( "%s driver not available.", pszDriverName );
++        return false;
++    }
++
++    /* Create create options */
++    char **createOptions = NULL;
++    createOptions = CSLSetNameValue( createOptions, "SPATIALITE", "YES" );
++
++    /* Open new dataset */
++    GDALDataset *poDS;
++
++    QFile::remove(fileName);
++    poDS = poDriver->Create( fileName.toUtf8().constData(), 0, 0, 0, 
GDT_Unknown, createOptions );
++    if( poDS == NULL )
++    {
++        qDebug( "Creation of output file failed." );
++        return false;
++    }
++    poDS->ExecuteSQL("PRAGMA synchronous = OFF", NULL, NULL);
++
++    /* Create Spatial reference object */
++    OGRSpatialReference *poSRS;
++    poSRS = new OGRSpatialReference();
++    poSRS->importFromEPSG(4326);
++
++    /* Create layer options */
++    char **layerOptions = NULL;
++    layerOptions = CSLSetNameValue( layerOptions, "FORMAT", "SPATIALITE" );
++    layerOptions = CSLSetNameValue( layerOptions, "SPATIAL_INDEX", "YES" );
++
++    /* Create layer */
++    OGRLayer *poLayer;
++    poLayer = poDS->CreateLayer( "osm", poSRS, wkbUnknown, layerOptions);
++
++    /* Free the options */
++    CSLDestroy( createOptions );
++    CSLDestroy( layerOptions );
++#else
++    /* This is legacy code, and is not tested at all */
+     OGRSFDriver *poDriver;
+ 
+     OGRRegisterAll();
+@@ -68,8 +120,8 @@ bool ImportExportGdal::export_(const QList<Feature *>& 
featList)
+ 
+     OGRDataSource *poDS;
+ 
+-    QFile::remove(QString(HOMEDIR + "/test.sqlite"));
+-    poDS = poDriver->CreateDataSource( QString(HOMEDIR + 
"/test.sqlite").toUtf8().constData(), NULL );
++    QFile::remove(fileName);
++    poDS = poDriver->CreateDataSource( fileName.toUtf8().constData(), NULL );
+     if( poDS == NULL )
+     {
+         qDebug( "Creation of output file failed." );
+@@ -89,6 +141,8 @@ bool ImportExportGdal::export_(const QList<Feature *>& 
featList)
+     OGRLayer *poLayer;
+     poLayer = poDS->CreateLayer( "osm", poSRS, wkbUnknown, papszOptions);
+     CSLDestroy( papszOptions );
++#endif
++
+ 
+     if( poLayer == NULL )
+     {
+@@ -142,7 +196,11 @@ bool ImportExportGdal::export_(const QList<Feature *>& 
featList)
+         }
+         OGRFeature::DestroyFeature( poFeature );
+     }
++#ifdef GDAL2
++    GDALClose( (GDALDatasetH) poDS );
++#else
+     OGRDataSource::DestroyDataSource( poDS );
++#endif
+     return true;
+ }
+ 
+@@ -264,7 +322,11 @@ Feature* ImportExportGdal::parseGeometry(Layer* aLayer, 
OGRGeometry *poGeometry)
+ 
+ // import the  input
+ 
+-bool ImportExportGdal::importGDALDataset(OGRDataSource* poDS, Layer* aLayer, 
bool confirmProjection)
++#ifndef GDAL2
++#define GDALDataset OGRDataSource
++#endif
++bool ImportExportGdal::importGDALDataset(GDALDataset* poDS, Layer* aLayer, 
bool confirmProjection)
++#undef GDALDataset
+ {
+     int ogrError;
+ 
+@@ -422,11 +484,16 @@ bool ImportExportGdal::importGDALDataset(OGRDataSource* 
poDS, Layer* aLayer, boo
+ 
+ bool ImportExportGdal::import(Layer* aLayer)
+ {
++#ifdef GDAL2
++    GDALAllRegister();
++    GDALDataset *poDS;
++    poDS = (GDALDataset *) GDALOpen( FileName.toUtf8().constData(), 
GA_ReadOnly );
++#else
+     OGRRegisterAll();
+-
+-    OGRDataSource       *poDS;
+-
++    OGRDataSource *poDS;
+     poDS = OGRSFDriverRegistrar::Open( FileName.toUtf8().constData(), FALSE );
++#endif
++
+     if( poDS == NULL )
+     {
+         qDebug( "GDAL Open failed.\n" );
+@@ -435,22 +502,26 @@ bool ImportExportGdal::import(Layer* aLayer)
+ 
+     importGDALDataset(poDS, aLayer, M_PREFS->getGdalConfirmProjection());
+ 
+-    OGRDataSource::DestroyDataSource( poDS );
++    GDALClose( (GDALDatasetH) poDS );
+ 
+     return true;
+ }
+ 
+ bool ImportExportGdal::import(Layer* aLayer, const QByteArray& ba, bool 
confirmProjection)
+ {
+-    OGRRegisterAll();
+-
+-    OGRDataSource       *poDS;
+-//    int ogrError;
+-
+     GByte* content = (GByte*)(ba.constData());
+     /*FILE* f = */VSIFileFromMemBuffer("/vsimem/temp", content, ba.size(), 
FALSE);
+ 
++#ifdef GDAL2
++    GDALAllRegister();
++    GDALDataset *poDS;
++    poDS = (GDALDataset *) GDALOpen( "/vsimem/temp", GA_ReadOnly );
++#else
++    OGRRegisterAll();
++    OGRDataSource *poDS;
+     poDS = OGRSFDriverRegistrar::Open( "/vsimem/temp", FALSE );
++#endif
++
+     if( poDS == NULL )
+     {
+         qDebug( "GDAL Open failed.\n" );
+@@ -458,7 +529,7 @@ bool ImportExportGdal::import(Layer* aLayer, const 
QByteArray& ba, bool confirmP
+     }
+     importGDALDataset(poDS, aLayer, confirmProjection);
+ 
+-    OGRDataSource::DestroyDataSource( poDS );
++    GDALClose( (GDALDatasetH) poDS );
+ 
+     return true;
+ }
+--- a/src/ImportExport/ImportExportGdal.h 2015-06-15 18:50:42.884995287 +0200
++++ b/src/ImportExport/ImportExportGdal.h 2015-06-15 18:50:42.884995287 +0200
+@@ -13,7 +13,15 @@
+ #define ImportExportGDAL_H
+ 
+ #include "IImportExport.h"
+-#include "ogrsf_frmts.h"
++
++#include <ogrsf_frmts.h>
++#include <gdal.h>
++#include <gdal_priv.h>
++#include <gdal_version.h>
++
++#if GDAL_VERSION_MAJOR == 2
++#define GDAL2
++#endif
+ 
+ class Projection;
+ class Layer;
+@@ -52,7 +60,11 @@ class ImportExportGdal : public IImportExport
+     Node *nodeFor(Layer* aLayer, OGRPoint point);
+     Way *readWay(Layer* aLayer, OGRLineString *poRing);
+ 
+-    bool importGDALDataset(OGRDataSource *poDs, Layer *aLayer, bool 
confirmProjection);
++#ifndef GDAL2
++#define GDALDataset OGRDataSource
++#endif
++    bool importGDALDataset(GDALDataset *poDs, Layer *aLayer, bool 
confirmProjection);
++#undef GDALDataset
+ 
+ private:
+     QHash<OGRPoint, Node*> pointHash;

diff --git a/sci-geosciences/merkaartor/merkaartor-0.18.1-r1.ebuild 
b/sci-geosciences/merkaartor/merkaartor-0.18.1-r2.ebuild
similarity index 94%
rename from sci-geosciences/merkaartor/merkaartor-0.18.1-r1.ebuild
rename to sci-geosciences/merkaartor/merkaartor-0.18.1-r2.ebuild
index 33f4f54..211238a 100644
--- a/sci-geosciences/merkaartor/merkaartor-0.18.1-r1.ebuild
+++ b/sci-geosciences/merkaartor/merkaartor-0.18.1-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -52,6 +52,10 @@ src_prepare() {
        fi
 
        epatch "${FILESDIR}"/${P}-system-libs.patch
+
+       # bug 554304 - build against gdal 2
+       epatch "${FILESDIR}"/${PN}-gdal-2-fix.patch
+
        epatch_user
 }
 

diff --git a/sci-geosciences/merkaartor/merkaartor-0.18.1.ebuild 
b/sci-geosciences/merkaartor/merkaartor-0.18.1.ebuild
deleted file mode 100644
index 97f7151..0000000
--- a/sci-geosciences/merkaartor/merkaartor-0.18.1.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-REDMINE_HASH="301"
-
-inherit multilib qt4-r2 ${SCM_ECLASS}
-
-DESCRIPTION="A Qt4 based map editor for the openstreetmap.org project"
-HOMEPAGE="http://www.merkaartor.be";
-SRC_URI="http://merkaartor.be/attachments/download/${REDMINE_HASH}/merkaartor-${PV}.tar.bz2";
-
-LICENSE="GPL-2"
-SLOT="0"
-
-# Don't move KEYWORDS on the previous line or ekeyword won't work # 399061
-KEYWORDS="~amd64 ~x86"
-
-IUSE="debug exif gps nls libproxy"
-
-QT_MINIMAL="4.7.2"
-DEPEND="
-       >=dev-libs/boost-1.46
-       >=sci-libs/gdal-1.6.0
-       >=sci-libs/proj-4.6
-       >=dev-qt/qtgui-${QT_MINIMAL}:4
-       >=dev-qt/qtsvg-${QT_MINIMAL}:4
-       >=dev-qt/qtwebkit-${QT_MINIMAL}:4
-       exif? ( media-gfx/exiv2 )
-       gps? ( >=sci-geosciences/gpsd-2.92[cxx] )
-       libproxy? ( net-libs/libproxy )
-"
-RDEPEND="${DEPEND}"
-
-DOCS="AUTHORS CHANGELOG HACKING"
-
-PATCHES=(
-#      "${FILESDIR}"/0.17.2-includes.patch
-#      "${FILESDIR}"/0.17.2-libproxy.patch
-)
-
-merkaartor_use() {
-       local useflag=${1}
-       [[ -z ${useflag} ]] && die "No useflag specified"
-       if use ${useflag}; then
-               echo "1"
-       else
-               echo "0"
-       fi
-}
-
-src_configure() {
-       local myconf
-       myconf+=" RELEASE=1 ZBAR=0" # deps not in main tree so hard-disable
-       myconf+=" GEOIMAGE=$(${PN}_use exif)"
-       myconf+=" GPSDLIB=$(${PN}_use gps)"
-       myconf+=" LIBPROXY=$(${PN}_use libproxy)"
-       myconf+=" NODEBUG=$(use debug && echo "0" || echo "1")" # inverse logic
-       myconf+=" NOUSEWEBKIT=0" # fails to link if disabled, upstream needs to 
fix
-       myconf+=" TRANSDIR_MERKAARTOR=/usr/share/${PN}/translations 
TRANSDIR_SYSTEM=/usr/share/qt4/translations" #385671
-
-       if use nls; then
-               lrelease src/src.pro || die "lrelease failed"
-       fi
-
-       eqmake4 Merkaartor.pro LIBDIR=/usr/$(get_libdir) PREFIX=/usr/ ${myconf}
-}

Reply via email to