summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmy Winston <amynka@gentoo.org>2016-01-18 19:28:31 +0100
committerAmy Winston <amynka@gentoo.org>2016-01-18 19:28:31 +0100
commit469204d2eb46c95572471d9fea1b2339b334c314 (patch)
tree3617267a7bd6635fd0c29a3c1fde65c7f6c91315
parentdev-python/pygments: version bump to 2.1 (diff)
downloadgentoo-469204d2eb46c95572471d9fea1b2339b334c314.tar.gz
gentoo-469204d2eb46c95572471d9fea1b2339b334c314.tar.bz2
gentoo-469204d2eb46c95572471d9fea1b2339b334c314.zip
sci-geosciences/merkaartor: compatibility with gdal bug #554304. By wraeth
Package-Manager: portage-2.2.24
-rw-r--r--sci-geosciences/merkaartor/Manifest1
-rw-r--r--sci-geosciences/merkaartor/files/merkaartor-gdal-2-fix.patch212
-rw-r--r--sci-geosciences/merkaartor/merkaartor-0.18.1-r2.ebuild (renamed from sci-geosciences/merkaartor/merkaartor-0.18.1-r1.ebuild)6
-rw-r--r--sci-geosciences/merkaartor/merkaartor-0.18.1.ebuild69
4 files changed, 217 insertions, 71 deletions
diff --git a/sci-geosciences/merkaartor/Manifest b/sci-geosciences/merkaartor/Manifest
index 9950ede2b132..1b431ef42fad 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 000000000000..4197610c17f0
--- /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
index 33f4f5458c96..211238ae8a62 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 97f71518ee19..000000000000
--- 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}
-}