summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weber <xmw@gentoo.org>2015-02-24 00:05:14 +0000
committerMichael Weber <xmw@gentoo.org>2015-02-24 00:05:14 +0000
commit4a0856972c35ff07dd3c62c97d88bcf8a2fcc17b (patch)
treee94f5bdff61cacfa43a94bef957bc13661c98e80 /sci-libs
parentVersion bump (diff)
downloadgentoo-2-4a0856972c35ff07dd3c62c97d88bcf8a2fcc17b.tar.gz
gentoo-2-4a0856972c35ff07dd3c62c97d88bcf8a2fcc17b.tar.bz2
gentoo-2-4a0856972c35ff07dd3c62c97d88bcf8a2fcc17b.zip
Add fix for bug 540132 by Greg Turner.
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 62EEF090)
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/gdal/ChangeLog8
-rw-r--r--sci-libs/gdal/files/gdal-1.11.1-poppler-0.31.0-support.patch119
-rw-r--r--sci-libs/gdal/gdal-1.11.1-r2.ebuild348
3 files changed, 474 insertions, 1 deletions
diff --git a/sci-libs/gdal/ChangeLog b/sci-libs/gdal/ChangeLog
index 4786f632a457..b93eff77d39c 100644
--- a/sci-libs/gdal/ChangeLog
+++ b/sci-libs/gdal/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sci-libs/gdal
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/gdal/ChangeLog,v 1.159 2015/01/12 23:49:19 grozin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/gdal/ChangeLog,v 1.160 2015/02/24 00:05:14 xmw Exp $
+
+*gdal-1.11.1-r2 (24 Feb 2015)
+
+ 24 Feb 2015; Michael Weber <xmw@gentoo.org>
+ +files/gdal-1.11.1-poppler-0.31.0-support.patch, +gdal-1.11.1-r2.ebuild:
+ Add fix for bug 540132 by Greg Turner.
12 Jan 2015; Andrey Grozin <grozin@gentoo.org> gdal-1.11.1-r1.ebuild,
+files/gdal-1.11.1-swig-3.0.3.patch:
diff --git a/sci-libs/gdal/files/gdal-1.11.1-poppler-0.31.0-support.patch b/sci-libs/gdal/files/gdal-1.11.1-poppler-0.31.0-support.patch
new file mode 100644
index 000000000000..7cda4f6e1a07
--- /dev/null
+++ b/sci-libs/gdal/files/gdal-1.11.1-poppler-0.31.0-support.patch
@@ -0,0 +1,119 @@
+diff -urpN gdal-1.11.1.orig/frmts/pdf/pdfdataset.cpp gdal-1.11.1/frmts/pdf/pdfdataset.cpp
+--- gdal-1.11.1.orig/frmts/pdf/pdfdataset.cpp 2014-09-24 06:47:43.000000000 -0700
++++ gdal-1.11.1/frmts/pdf/pdfdataset.cpp 2015-02-19 13:55:58.714589328 -0800
+@@ -108,12 +108,9 @@ class GDALPDFOutputDev : public SplashOu
+
+ public:
+ GDALPDFOutputDev(SplashColorMode colorModeA, int bitmapRowPadA,
+- GBool reverseVideoA, SplashColorPtr paperColorA,
+- GBool bitmapTopDownA = gTrue,
+- GBool allowAntialiasA = gTrue) :
++ GBool reverseVideoA, SplashColorPtr paperColorA) :
+ SplashOutputDev(colorModeA, bitmapRowPadA,
+- reverseVideoA, paperColorA,
+- bitmapTopDownA, allowAntialiasA),
++ reverseVideoA, paperColorA),
+ bEnableVector(TRUE),
+ bEnableText(TRUE),
+ bEnableBitmap(TRUE) {}
+diff -urpN gdal-1.11.1.orig/frmts/pdf/pdfio.cpp gdal-1.11.1/frmts/pdf/pdfio.cpp
+--- gdal-1.11.1.orig/frmts/pdf/pdfio.cpp 2014-09-24 06:47:43.000000000 -0700
++++ gdal-1.11.1/frmts/pdf/pdfio.cpp 2015-02-19 13:55:58.715589318 -0800
+@@ -39,13 +39,25 @@
+
+ CPL_CVSID("$Id: gdal-1.11.1-poppler-0.31.0-support.patch,v 1.1 2015/02/24 00:05:14 xmw Exp $");
+
++
++#ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS
++/* Poppler 0.31.0 is the first one that needs to know the file size */
++static vsi_l_offset VSIPDFFileStreamGetSize(VSILFILE* f)
++{
++ VSIFSeekL(f, 0, SEEK_END);
++ vsi_l_offset nSize = VSIFTellL(f);
++ VSIFSeekL(f, 0, SEEK_SET);
++ return nSize;
++}
++#endif
++
+ /************************************************************************/
+ /* VSIPDFFileStream() */
+ /************************************************************************/
+
+ VSIPDFFileStream::VSIPDFFileStream(VSILFILE* f, const char* pszFilename, Object *dictA):
+ #ifdef POPPLER_BASE_STREAM_HAS_TWO_ARGS
+- BaseStream(dictA, 0)
++ BaseStream(dictA, (setPos_offset_type)VSIPDFFileStreamGetSize(f))
+ #else
+ BaseStream(dictA)
+ #endif
+@@ -195,7 +207,7 @@ int VSIPDFFileStream::FillBuffer()
+ /* getChar() */
+ /************************************************************************/
+
+-/* The unoptimized version performs a bit well since we must go through */
++/* The unoptimized version performs a bit less since we must go through */
+ /* the whole virtual I/O chain for each character reading. We save a few */
+ /* percent with this extra internal caching */
+
+@@ -326,4 +338,47 @@ void VSIPDFFileStream::moveStart(moveSta
+ nPosInBuffer = nBufferLength = -1;
+ }
+
++/************************************************************************/
++/* hasGetChars() */
++/************************************************************************/
++
++GBool VSIPDFFileStream::hasGetChars()
++{
++ return true;
++}
++
++/************************************************************************/
++/* getChars() */
++/************************************************************************/
++
++int VSIPDFFileStream::getChars(int nChars, Guchar *buffer)
++{
++ int nRead = 0;
++ while (nRead < nChars)
++ {
++ int nToRead = nChars - nRead;
++ if (nPosInBuffer == nBufferLength)
++ {
++ if (!bLimited && nToRead > BUFFER_SIZE)
++ {
++ int nJustRead = (int) VSIFReadL(buffer + nRead, 1, nToRead, f);
++ nPosInBuffer = nBufferLength = -1;
++ nCurrentPos += nJustRead;
++ nRead += nJustRead;
++ break;
++ }
++ else if (!FillBuffer() || nPosInBuffer >= nBufferLength)
++ break;
++ }
++ if( nToRead > nBufferLength - nPosInBuffer )
++ nToRead = nBufferLength - nPosInBuffer;
++
++ memcpy( buffer + nRead, abyBuffer + nPosInBuffer, nToRead );
++ nPosInBuffer += nToRead;
++ nCurrentPos += nToRead;
++ nRead += nToRead;
++ }
++ return nRead;
++}
++
+ #endif
+diff -urpN gdal-1.11.1.orig/frmts/pdf/pdfio.h gdal-1.11.1/frmts/pdf/pdfio.h
+--- gdal-1.11.1.orig/frmts/pdf/pdfio.h 2014-09-24 06:47:43.000000000 -0700
++++ gdal-1.11.1/frmts/pdf/pdfio.h 2015-02-19 13:55:58.715589318 -0800
+@@ -93,6 +93,10 @@ class VSIPDFFileStream: public BaseStrea
+ virtual void close();
+
+ private:
++ /* Added in poppler 0.15.0 */
++ virtual GBool hasGetChars();
++ virtual int getChars(int nChars, Guchar *buffer);
++
+ VSIPDFFileStream *poParent;
+ GooString *poFilename;
+ VSILFILE *f;
diff --git a/sci-libs/gdal/gdal-1.11.1-r2.ebuild b/sci-libs/gdal/gdal-1.11.1-r2.ebuild
new file mode 100644
index 000000000000..bff6b7eaacc0
--- /dev/null
+++ b/sci-libs/gdal/gdal-1.11.1-r2.ebuild
@@ -0,0 +1,348 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/gdal/gdal-1.11.1-r2.ebuild,v 1.1 2015/02/24 00:05:14 xmw Exp $
+
+EAPI=5
+
+WANT_AUTOCONF="2.5"
+
+GENTOO_DEPEND_ON_PERL="no"
+PYTHON_COMPAT=( python2_{5..7} python3_{1..4} )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools eutils libtool perl-module distutils-r1 python-r1 toolchain-funcs java-pkg-opt-2
+
+DESCRIPTION="Translator library for raster geospatial data formats (includes OGR support)"
+HOMEPAGE="http://www.gdal.org/"
+SRC_URI="http://download.osgeo.org/${PN}/${PV}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="armadillo +aux_xml curl debug doc fits geos gif gml hdf5 java jpeg jpeg2k mdb mysql netcdf odbc ogdi opencl pdf perl png postgres python ruby spatialite sqlite threads xls"
+
+RDEPEND="
+ dev-libs/expat
+ dev-libs/json-c
+ dev-libs/libpcre
+ dev-libs/libxml2
+ media-libs/tiff
+ sci-libs/libgeotiff
+ sys-libs/zlib[minizip(+)]
+ armadillo? ( sci-libs/armadillo[lapack] )
+ curl? ( net-misc/curl )
+ fits? ( sci-libs/cfitsio )
+ geos? ( >=sci-libs/geos-2.2.1 )
+ gif? ( media-libs/giflib )
+ gml? ( >=dev-libs/xerces-c-3 )
+ hdf5? ( >=sci-libs/hdf5-1.6.4[szip] )
+ java? ( >=virtual/jre-1.6 )
+ jpeg? ( virtual/jpeg )
+ jpeg2k? ( media-libs/jasper )
+ mysql? ( virtual/mysql )
+ netcdf? ( sci-libs/netcdf )
+ odbc? ( dev-db/unixODBC )
+ ogdi? ( sci-libs/ogdi )
+ opencl? ( virtual/opencl )
+ pdf? ( >=app-text/poppler-0.24.3:= )
+ perl? ( dev-lang/perl:= )
+ png? ( media-libs/libpng )
+ postgres? ( >=dev-db/postgresql-8.4 )
+ python? (
+ ${PYTHON_DEPS}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+ ruby? ( dev-lang/ruby:1.9 )
+ sqlite? ( dev-db/sqlite:3 )
+ spatialite? ( dev-db/spatialite )
+ xls? ( dev-libs/freexl )
+"
+
+SWIG_DEP=">=dev-lang/swig-2.0.2"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ java? ( >=virtual/jdk-1.6 )
+ perl? ( ${SWIG_DEP} )
+ python? ( ${SWIG_DEP} )
+ ruby? ( ${SWIG_DEP} )"
+
+AT_M4DIR="${S}/m4"
+MAKEOPTS+=" -j1"
+
+REQUIRED_USE="
+ spatialite? ( sqlite )
+ mdb? ( java )
+"
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ java-pkg-opt-2_src_prepare
+
+ # fix datadir and docdir placement
+ sed -i \
+ -e "s:@datadir@:@datadir@/gdal:" \
+ -e "s:@exec_prefix@/doc:@exec_prefix@/share/doc/${PF}/html:g" \
+ "${S}"/GDALmake.opt.in || die
+
+ # the second sed expression should fix bug 371075
+ sed -i \
+ -e "s:setup.py install:setup.py install --root=\$(DESTDIR):" \
+ -e "s:--prefix=\$(DESTDIR):--prefix=:" \
+ "${S}"/swig/python/GNUmakefile || die
+
+ epatch "${FILESDIR}"/${PN}-1.10.0-ruby-makefile.patch
+
+ # -soname is only accepted by GNU ld/ELF
+ [[ ${CHOST} == *-darwin* ]] \
+ && epatch "${FILESDIR}"/${PN}-1.5.0-install_name.patch \
+ || epatch "${FILESDIR}"/${PN}-1.5.0-soname.patch
+
+ # Fix spatialite/sqlite include issue
+ sed -i \
+ -e 's:spatialite/sqlite3.h:sqlite3.h:g' \
+ ogr/ogrsf_frmts/sqlite/ogr_sqlite.h || die
+
+ # Fix freexl configure check
+ sed -i \
+ -e 's:FREEXL_LIBS=missing):FREEXL_LIBS=missing,-lm):g' \
+ configure.in || die
+
+ sed \
+ -e "s: /usr/: \"${EPREFIX}\"/usr/:g" \
+ -i configure.in || die
+
+ sed \
+ -e 's:^ar:$(AR):g' \
+ -i ogr/ogrsf_frmts/sdts/install-libs.sh || die
+
+ # Fix swig-3.0.3 problem (bug #534168)
+ epatch "${FILESDIR}"/${PN}-1.11.1-swig-3.0.3.patch
+
+ # bug 540132
+ epatch "${FILESDIR}"/${PN}-1.11.1-poppler-0.31.0-support.patch
+
+ tc-export AR RANLIB
+
+ eautoreconf
+
+ prepare_python() {
+ mkdir -p "${BUILD_DIR}" || die
+ find "${S}" -type d -maxdepth 1 -exec ln -s {} "${BUILD_DIR}"/ \; ||die
+ find "${S}" -type f -maxdepth 1 -exec cp --target="${BUILD_DIR}"/ {} + ||die
+# mkdir -p "${BUILD_DIR}"/swig/python || die
+# mkdir -p "${BUILD_DIR}"/apps || die
+# cp -dpR --target="${BUILD_DIR}"/swig/ \
+# "${S}"/swig/{python,SWIGmake.base,GNUmakefile} || die
+# ln -s "${S}"/swig/include "${BUILD_DIR}"/swig/ || die
+# ln -s "${S}"/apps/gdal-config "${BUILD_DIR}"/apps/ || die
+# ln -s "${S}"/port "${BUILD_DIR}"/ || die
+ }
+ if use python; then
+ python_foreach_impl prepare_python
+ fi
+}
+
+gdal_src_configure() {
+ local myopts=""
+
+ if use ruby; then
+ RUBY_MOD_DIR="$(ruby19 -r rbconfig -e 'print RbConfig::CONFIG["sitearchdir"]')"
+ echo "Ruby module dir is: $RUBY_MOD_DIR"
+ fi
+
+ if use java; then
+ myopts+="
+ --with-java=$(java-config --jdk-home 2>/dev/null)
+ $(use_with mdb)"
+ else
+ myopts+=" --without-java --without-mdb"
+ use mdb && ewarn "mdb requires java use enabled. disabling"
+ fi
+
+ if use sqlite; then
+ myopts+=" LIBS=-lsqlite3"
+ fi
+
+ # pcidsk is internal, because there is no such library yet released
+ # also that thing is developed by the gdal people
+ # kakadu, mrsid jp2mrsid - another jpeg2k stuff, ignore
+ # bsb - legal issues
+ # oracle - disabled, i dont have and can't test
+ # ingres - same story as oracle oci
+ # podofo - we use poppler instead they are exclusive for each other
+ # tiff is a hard dep
+ ECONF_SOURCE="${S}" econf \
+ --includedir="${EPREFIX}/usr/include/${PN}" \
+ --disable-static \
+ --enable-shared \
+ --with-expat \
+ --with-geotiff \
+ --with-grib \
+ --with-libtiff \
+ --with-libz="${EPREFIX}/usr/" \
+ --with-ogr \
+ --without-bsb \
+ --without-dods-root \
+ --without-dwgdirect \
+ --without-epsilon \
+ --without-fme \
+ --without-grass \
+ --without-hdf4 \
+ --without-idb \
+ --without-ingres \
+ --without-jp2mrsid \
+ --without-kakadu \
+ --without-libtool \
+ --without-mrsid \
+ --without-msg \
+ --without-oci \
+ --without-pcraster \
+ --without-podofo \
+ --without-sde \
+ $(use_enable debug) \
+ $(use_with armadillo) \
+ $(use_with aux_xml pam) \
+ $(use_with curl) \
+ --without-ecw \
+ $(use_with fits cfitsio) \
+ $(use_with geos) \
+ $(use_with gif) \
+ $(use_with gml xerces) \
+ $(use_with hdf5) \
+ $(use_with jpeg pcidsk) \
+ $(use_with jpeg) \
+ $(use_with jpeg2k jasper) \
+ $(use_with mysql mysql "${EPREFIX}"/usr/bin/mysql_config) \
+ $(use_with netcdf) \
+ $(use_with odbc) \
+ $(use_with ogdi ogdi "${EPREFIX}"/usr) \
+ $(use_with opencl) \
+ $(use_with pdf poppler) \
+ $(use_with perl) \
+ $(use_with png) \
+ $(use_with postgres pg) \
+ $(use_with python) \
+ $(use_with ruby) \
+ $(use_with spatialite) \
+ $(use_with sqlite sqlite3 "${EPREFIX}"/usr) \
+ $(use_with threads) \
+ $(use_with xls freexl) \
+ ${myopts}
+
+ # mysql-config puts this in (and boy is it a PITA to get it out)
+ if use mysql; then
+ sed -i \
+ -e "s: -rdynamic : :" \
+ GDALmake.opt || die "sed LIBS failed"
+ fi
+
+ if [[ -n $use_python ]]; then
+ # updated for newer swig (must specify the path to input files)
+ sed -i \
+ -e "s: gdal_array.i: ../include/gdal_array.i:" \
+ -e "s:\$(DESTDIR)\$(prefix):\$(DESTDIR)\$(INST_PREFIX):g" \
+ swig/python/GNUmakefile || die "sed python makefile failed"
+ sed -i \
+ -e "s:library_dirs = :library_dirs = /usr/$(get_libdir):g" \
+ swig/python/setup.cfg || die "sed python setup.cfg failed"
+# -e "s:gdal_config=.*$:gdal_config=../../../apps/gdal-config:g" \
+ fi
+}
+
+src_configure() {
+ local use_python=""
+
+ gdal_src_configure
+
+ if use python; then
+ use_python="yes"
+ python_foreach_impl run_in_build_dir gdal_src_configure
+ fi
+}
+
+src_compile() {
+ local i
+ for i in perl ruby; do
+ if use $i; then
+ rm "${S}"/swig/$i/*_wrap.cpp
+ emake -C "${S}"/swig/$i generate
+ fi
+ done
+
+ default
+
+ if use perl ; then
+ pushd "${S}"/swig/perl > /dev/null
+ perl-module_src_configure
+ perl-module_src_compile
+ popd > /dev/null
+ fi
+
+ use doc && emake docs
+
+ compile_python() {
+ rm -f swig/python/*_wrap.cpp
+ emake -C swig/python generate
+ emake -C swig/python build
+ }
+ if use python; then
+ python_foreach_impl run_in_build_dir compile_python
+ fi
+}
+
+src_install() {
+ if use perl ; then
+ pushd "${S}"/swig/perl > /dev/null
+ perl-module_src_install
+ popd > /dev/null
+ sed -i \
+ -e "s:BINDINGS = python ruby perl:BINDINGS = python ruby:g" \
+ GDALmake.opt || die
+ fi
+
+ default
+
+ if use ruby ; then
+ # weird reinstall collision; needs manual intervention...
+ pushd "${S}"/swig/ruby > /dev/null
+ rm -rf "${D}"${RUBY_MOD_DIR}/gdal
+ exeinto ${RUBY_MOD_DIR}/gdal
+ doexe *.so || die "doins ruby modules failed"
+ popd > /dev/null
+ fi
+
+ use perl && perl_delete_localpod
+
+ dodoc Doxyfile HOWTO-RELEASE NEWS
+
+ if use doc ; then
+ dohtml html/*
+ docinto ogr
+ dohtml ogr/html/*
+ fi
+
+ install_python() {
+ emake -C swig/python DESTDIR="${D}" install
+ }
+ if use python; then
+ python_foreach_impl run_in_build_dir install_python
+ newdoc swig/python/README.txt README-python.txt
+ insinto /usr/share/${PN}/samples
+ doins swig/python/samples/*
+ fi
+
+ pushd man/man1 > /dev/null
+ for i in * ; do
+ newman ${i} ${i}
+ done
+ popd > /dev/null
+}
+
+pkg_postinst() {
+ elog "Check available image and data formats after building with"
+ elog "gdalinfo and ogrinfo (using the --formats switch)."
+}