[packages/gdal: 1/3] - added fyba patch (SOSI support with default prefix); enabled SOSI/fyba (+bcond) - added dds patch

qboosh qboosh at pld-linux.org
Sat Jun 14 22:34:10 CEST 2014


commit 779b0eecf7b016e2b67320fdcf156ad4365ee96b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Jun 14 22:23:10 2014 +0200

    - added fyba patch (SOSI support with default prefix); enabled SOSI/fyba (+bcond)
    - added dds patch (crnlib detection fix); enabled DDS/crnlib (+bcond)
    - added gif patch (build fix for giflib 5.1+)
    - added armadillo patch (make armadillo detection more reliable)
    - added oci patch (fix libclntsh check wrt. as-needed)
    - added rasdaman patch (fix for rasdaman 8.4+); enabled rasdaman support (+bcond)

 gdal-armadillo.patch |  13 +++++
 gdal-dds.patch       |  14 ++++++
 gdal-fyba.patch      |  29 +++++++++++
 gdal-gif.patch       | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gdal-oci.patch       |  36 ++++++++++++++
 gdal-rasdaman.patch  |  20 ++++++++
 gdal.spec            |  36 +++++++++++---
 7 files changed, 277 insertions(+), 7 deletions(-)
---
diff --git a/gdal.spec b/gdal.spec
index 2519269..9052012 100644
--- a/gdal.spec
+++ b/gdal.spec
@@ -7,8 +7,6 @@
 # - libkml (1.3.0 needed, not released yet)
 # - wait for newer pcidsk, switch to external again
 # - csharp, java
-# - DDS (--with-dds, BR [lib]crunch: http://code.google.com/p/crunch/)
-# - SOSI (--with-sosi, BR: libfyba libfygm libfyut: https://github.com/kartverket/fyba)
 # - additional, proprietary(?) formats support:
 #   - FMEObjects (http://www.safe.com/support/support-resources/fme-downloads/)
 #   - ESRI FileGDBAPI (http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api)
@@ -24,7 +22,9 @@
 #
 # Conditional build:
 %bcond_without	armadillo	# Armadillo support for faster TPS transform
+%bcond_without	crnlib		# DDS support via crunch/crnlib
 %bcond_without	epsilon		# EPSILON wavelet compression support
+%bcond_without	fyba		# SOSI geodata support using FYBA
 %bcond_with	grass		# GRASS support (note: dependency loop)
 %bcond_without	gta		# GTA format support
 %bcond_without	mysql		# MySQL DB support
@@ -34,6 +34,7 @@
 %bcond_without	openjpeg	# OpenJPEG 2 (JPEG2000) support
 %bcond_with	podofo		# PDF support via podofo instead of poppler
 %bcond_without	poppler		# PDF support via poppler
+%bcond_without	rasdaman	# Rasdaman support
 %bcond_without	spatialite	# SpatiaLite support
 %bcond_without	xerces		# Xerces support
 %bcond_without	java		# Java and MDB support
@@ -60,21 +61,29 @@ Patch4:		%{name}-format-security.patch
 Patch5:		%{name}-grass.patch
 Patch6:		%{name}-sse.patch
 Patch7:		%{name}-link.patch
+Patch8:		%{name}-fyba.patch
+Patch9:		%{name}-dds.patch
+Patch10:	%{name}-gif.patch
+Patch11:	%{name}-armadillo.patch
+Patch12:	%{name}-oci.patch
+Patch13:	%{name}-rasdaman.patch
 URL:		http://www.gdal.org/
 %{?with_opencl:BuildRequires:	OpenCL-devel >= 1.0}
 %{?with_armadillo:BuildRequires:	armadillo-devel}
 BuildRequires:	autoconf >= 2.52
 BuildRequires:	automake
 BuildRequires:	cfitsio-devel
+%{?with_dds:BuildRequires:	crnlib-devel}
 BuildRequires:	curl-devel
 BuildRequires:	doxygen >= 1.4.2
 %{?with_epsilon:BuildRequires:	epsilon-compressor-devel}
 BuildRequires:	expat-devel >= 1.95.0
+%{?with_fyba:BuildRequires:	fyba-devel}
 BuildRequires:	freexl-devel >= 1.0
 BuildRequires:	gcc >= 6:4.1
 BuildRequires:	geos-devel >= 3.1.0
 BuildRequires:	giflib-devel >= 4.0
-%{?with_grass:BuildRequires:	grass-devel >= 5.7}
+%{?with_grass:BuildRequires:	grass-devel >= 6.4}
 BuildRequires:	hdf-devel >= 4.0
 BuildRequires:	hdf5-devel
 BuildRequires:	jasper-devel
@@ -113,6 +122,7 @@ BuildRequires:	proj-devel >= 4
 BuildRequires:	python-devel >= 1:2.5
 BuildRequires:	python-numpy-devel >= 1:1.0.0
 BuildRequires:	python-setuptools
+%{?with_rasdaman:BuildRequires:	rasdaman-devel}
 BuildRequires:	rpm-pythonprov
 %{?with_ruby:BuildRequires:	rpm-rubyprov}
 BuildRequires:	rpmbuild(macros) >= 1.344
@@ -160,8 +170,10 @@ Requires:	%{name} = %{version}-%{release}
 %{?with_opencl:Requires:	OpenCL-devel >= 1.0}
 %{?with_armadillo:Requires:	armadillo-devel}
 Requires:	cfitsio-devel
+%{?with_dds:Requires:	crnlib-devel}
 Requires:	curl-devel
 %{?with_epsilon:Requires:	epsilon-compressor-devel}
+%{?with_fyba:Requires:	fyba-devel}
 Requires:	expat-devel >= 1.95.0
 Requires:	freexl-devel >= 1.0
 Requires:	geos-devel >= 3.1.0
@@ -191,6 +203,7 @@ Requires:	ogdi-devel >= 3.1
 %{?with_poppler:Requires:	poppler-devel >= 0.24}
 Requires:	postgresql-devel
 Requires:	proj-devel >= 4
+%{?with_rasdaman:Requires:	rasdaman-devel}
 Requires:	sqlite3-devel >= 3.0.0
 %{?with_odbc:Requires:	unixODBC-devel}
 %{?with_xerces:Requires:	xerces-c-devel >= 2.7.0}
@@ -276,6 +289,12 @@ osr.
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
 
 # need to regenerate (old ones don't support perl 5.10 or php 5.5)
 %{__rm} swig/{perl,php}/{gdal_wrap.cpp,gdalconst_wrap.c,ogr_wrap.cpp,osr_wrap.cpp}
@@ -308,11 +327,11 @@ sed -i -e 's#^mandir=.*##g' configure.in
 %{__libtoolize}
 %{__aclocal} -I m4
 %{__autoconf}
-# disable grass/libgrass here, it can be built from separate gdal-grass package
 %configure \
 	--datadir=%{_datadir}/gdal \
 	--with-dods-root=/usr \
 	%{?with_armadillo:--with-armadillo} \
+	%{?with_crnlib:--with-dds} \
 	%{?with_epsilon:--with-epsilon} \
 	%{?with_grass:--with-grass} \
 	%{!?with_gta:--without-gta} \
@@ -328,7 +347,9 @@ sed -i -e 's#^mandir=.*##g' configure.in
 	%{?with_podofo:--with-podofo} \
 	%{?with_poppler:--with-poppler} \
 	--with-python \
+	%{?with_rasdaman:--with-rasdaman=%{_libdir}/rasdaman} \
 	%{?with_ruby:--with-ruby} \
+	%{?with_fyba:--with-sosi} \
 	%{?with_spatialite:--with-spatialite} \
 	--with-sqlite3 \
 	--with-webp \
@@ -336,9 +357,8 @@ sed -i -e 's#^mandir=.*##g' configure.in
 	--with-xerces-inc=/usr/include/xercesc \
 	--with-xerces-lib="-lxerces-c" \
 	--without-libgrass
-#	--with-rasdaman
 #	--with-pcidsk=/usr (needs > 0.3)
-# csharp builds, but has no configure option
+# csharp builds, but has no configure option nor install target
 
 # regenerate where needed
 %{__make} -j1 -C swig/perl generate
@@ -346,7 +366,9 @@ sed -i -e 's#^mandir=.*##g' configure.in
 %{__make} -j1 -C swig/ruby generate
 %endif
 
-%{__make} -j1
+%{__make} -j1 \
+	%{?with_grass:GRASS_INCLUDE="-I/usr/include/grass64"} \
+	%{?with_fyba:SOSI_INC="-I/usr/include/fyba"}
 
 %{__make} -j1 docs
 
diff --git a/gdal-armadillo.patch b/gdal-armadillo.patch
new file mode 100644
index 0000000..3a0a20d
--- /dev/null
+++ b/gdal-armadillo.patch
@@ -0,0 +1,13 @@
+Kill warnings in Armadillo detection code to make compiler output empty
+--- gdal-1.11.0/configure.in.orig	2014-06-14 15:45:50.005039893 +0200
++++ gdal-1.11.0/configure.in	2014-06-14 16:46:47.261630331 +0200
+@@ -4227,7 +4227,7 @@
+     rm -f testarmadillo.*
+     rm -f testarmadillo
+     echo '#include <armadillo>' > testarmadillo.cpp
+-    echo 'int main(int argc, char** argv) { arma::mat matInput(2,2); const arma::mat& matInv = arma::inv(matInput); return 0; } ' >> testarmadillo.cpp
+-    if test -z "`${CXX} ${CPPFLAGS} testarmadillo.cpp -o testarmadillo -larmadillo ${LIBS} 2>&1`" ; then
++    echo 'int main(int, char**) { arma::mat matInput(2,2); const arma::mat& matInv = arma::inv(matInput); (void)matInv; return 0; } ' >> testarmadillo.cpp
++    if test -z "`${CXX} ${CPPFLAGS} testarmadillo.cpp -o testarmadillo -larmadillo 2>&1`" ; then
+         HAVE_ARMADILLO=yes
+         LIBS="-larmadillo ${LIBS}"
diff --git a/gdal-dds.patch b/gdal-dds.patch
new file mode 100644
index 0000000..1fb71fc
--- /dev/null
+++ b/gdal-dds.patch
@@ -0,0 +1,14 @@
+--- gdal-1.11.0/configure.in.orig	2014-05-18 11:22:22.873992206 +0200
++++ gdal-1.11.0/configure.in	2014-05-18 12:20:58.637252259 +0200
+@@ -941,6 +941,11 @@
+ 
+   echo "dds support disabled."
+ 
++elif test "$with_dds" = "yes"; then
++  DDS_SETTING=yes
++  CRUNCHDIR="/usr"
++  LIBS="-lcrunch $LIBS"
++  echo "using libcrunch in default location."
+ else
+ 
+   DDS_SETTING=yes
diff --git a/gdal-fyba.patch b/gdal-fyba.patch
new file mode 100644
index 0000000..00be7c5
--- /dev/null
+++ b/gdal-fyba.patch
@@ -0,0 +1,29 @@
+--- gdal-1.11.0/configure.in.orig	2014-05-12 21:49:57.910679098 +0200
++++ gdal-1.11.0/configure.in	2014-05-18 11:22:22.873992206 +0200
+@@ -1480,23 +1480,10 @@
+ 
+ elif test "$with_sosi" = "yes" -o "$with_sosi" = "" ; then
+ 
+-    AC_MSG_CHECKING([for libfyba.a, libfygm.a and libfyut.a in /usr/local/lib])
+-    if test -r /usr/local/lib/libfyba.a -a -r /usr/local/lib/libfygm.a -a -r /usr/local/lib/libfyut.a ; then
+-        AC_MSG_RESULT([found])
++    AC_CHECK_LIB([fyba], [main], [
+         SOSI_ENABLED=yes
+-        SOSI_LIB="/usr/local/lib/libfyba.a /usr/local/lib/libfygm.a /usr/local/lib/libfyut.a"
+-    else
+-        AC_MSG_ERROR([not found.])
+-    fi
+-
+-    AC_MSG_CHECKING([for fyba.h, fygm.h and fyut.h in /usr/local/include/fyba])
+-    if test -r /usr/local/include/fyba/fyba.h -a -r /usr/local/include/fyba/fygm.h -a -r /usr/local/include/fyba/fyut.h ; then
+-        AC_MSG_RESULT([found])
+-        SOSI_ENABLED=yes
+-        SOSI_INC="-I/usr/local/include/fyba"
+-    else
+-        AC_MSG_ERROR([not found.])
+-    fi
++        SOSI_LIB="-lfyba -lfygm -lfyut"
++    ], [AC_MSG_ERROR([not found.])])
+ 
+ else
+ 
diff --git a/gdal-gif.patch b/gdal-gif.patch
new file mode 100644
index 0000000..ddf9129
--- /dev/null
+++ b/gdal-gif.patch
@@ -0,0 +1,136 @@
+--- gdal-1.11.0/frmts/gif/gifdataset.cpp.orig	2014-04-16 22:04:33.000000000 +0200
++++ gdal-1.11.0/frmts/gif/gifdataset.cpp	2014-06-14 16:10:22.245009208 +0200
+@@ -386,13 +386,21 @@
+             CPLDebug( "GIF",
+                       "Due to limitations of the GDAL GIF driver we deliberately avoid\n"
+                       "opening large GIF files (larger than 100 megapixels).");
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++            DGifCloseFile( hGifFile, NULL );
++#else
+             DGifCloseFile( hGifFile );
++#endif
+             VSIFCloseL( fp );
+             return NULL;
+         }
+     }
+ 
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++    DGifCloseFile( hGifFile, NULL );
++#else
+     DGifCloseFile( hGifFile );
++#endif
+ 
+     VSIFSeekL( fp, 0, SEEK_SET);
+ 
+@@ -417,7 +425,11 @@
+     if( nGifErr != GIF_OK || hGifFile->SavedImages == NULL )
+     {
+         VSIFCloseL( fp );
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        DGifCloseFile(hGifFile, NULL);
++#else
+         DGifCloseFile(hGifFile);
++#endif
+ 
+         if( nGifErr == D_GIF_ERR_DATA_TOO_BIG )
+         {
+@@ -649,7 +661,11 @@
+     {
+         GifFreeMapObject(psGifCT);
+         GDALPrintGifError(hGifFile, "Error writing gif file.");
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        EGifCloseFile(hGifFile, NULL);
++#else
+         EGifCloseFile(hGifFile);
++#endif
+         VSIFCloseL( fp );
+         return NULL;
+     }
+@@ -673,7 +689,11 @@
+     if (EGifPutImageDesc(hGifFile, 0, 0, nXSize, nYSize, bInterlace, NULL) == GIF_ERROR )
+     {
+         GDALPrintGifError(hGifFile, "Error writing gif file.");
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        EGifCloseFile(hGifFile, NULL);
++#else
+         EGifCloseFile(hGifFile);
++#endif
+         VSIFCloseL( fp );
+         return NULL;
+     }
+@@ -756,7 +776,11 @@
+ /* -------------------------------------------------------------------- */
+ /*      cleanup                                                         */
+ /* -------------------------------------------------------------------- */
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++    if (EGifCloseFile(hGifFile, NULL) == GIF_ERROR)
++#else
+     if (EGifCloseFile(hGifFile) == GIF_ERROR)
++#endif
+     {
+         CPLError( CE_Failure, CPLE_AppDefined, 
+                   "EGifCloseFile() failed.\n" );
+@@ -807,7 +831,11 @@
+ 
+ error:
+     if (hGifFile)
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        EGifCloseFile(hGifFile, NULL);
++#else
+         EGifCloseFile(hGifFile);
++#endif
+     if (fp)
+         VSIFCloseL( fp );
+     if (pabyScanline)
+--- gdal-1.11.0/frmts/gif/biggifdataset.cpp.orig	2014-04-16 22:04:33.000000000 +0200
++++ gdal-1.11.0/frmts/gif/biggifdataset.cpp	2014-06-14 17:36:54.164900991 +0200
+@@ -339,7 +339,11 @@
+ /*      If the file is already open, close it so we can restart.        */
+ /* -------------------------------------------------------------------- */
+     if( hGifFile != NULL )
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        DGifCloseFile( hGifFile, NULL );
++#else
+         DGifCloseFile( hGifFile );
++#endif
+ 
+ /* -------------------------------------------------------------------- */
+ /*      If we are actually reopening, then we assume that access to     */
+@@ -413,7 +417,11 @@
+ 
+     if( RecordType != IMAGE_DESC_RECORD_TYPE )
+     {
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        DGifCloseFile( hGifFile, NULL );
++#else
+         DGifCloseFile( hGifFile );
++#endif
+         hGifFile = NULL;
+ 
+         CPLError( CE_Failure, CPLE_OpenFailed, 
+@@ -423,7 +431,11 @@
+     
+     if (DGifGetImageDesc(hGifFile) == GIF_ERROR)
+     {
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        DGifCloseFile( hGifFile, NULL );
++#else
+         DGifCloseFile( hGifFile );
++#endif
+         hGifFile = NULL;
+ 
+         CPLError( CE_Failure, CPLE_OpenFailed, 
+--- gdal-1.11.0/frmts/gif/gifabstractdataset.cpp.orig	2014-04-16 22:04:33.000000000 +0200
++++ gdal-1.11.0/frmts/gif/gifabstractdataset.cpp	2014-06-14 18:52:07.828140246 +0200
+@@ -82,7 +82,11 @@
+     }
+ 
+     if( hGifFile )
++#if defined(GIFLIB_MAJOR) && ((GIFLIB_MAJOR > 5) || ((GIFLIB_MAJOR == 5) && defined(GIFLIB_MINOR) && (GIFLIB_MINOR >= 1)))
++        DGifCloseFile( hGifFile, NULL );
++#else
+         DGifCloseFile( hGifFile );
++#endif
+ 
+     if( fp != NULL )
+         VSIFCloseL( fp );
diff --git a/gdal-oci.patch b/gdal-oci.patch
new file mode 100644
index 0000000..8495838
--- /dev/null
+++ b/gdal-oci.patch
@@ -0,0 +1,36 @@
+--- gdal-1.11.0/m4/ax_oracle_oci.m4.orig	2014-04-16 22:04:00.000000000 +0200
++++ gdal-1.11.0/m4/ax_oracle_oci.m4	2014-06-14 17:01:57.071611368 +0200
+@@ -156,12 +156,14 @@
+         dnl Depending on later Oracle version detection,
+         dnl -lnnz10 flag might be removed for older Oracle < 10.x
+         saved_LDFLAGS="$LDFLAGS"
++        saved_LIBS="$LIBS"
+ 	if test -n "$oracle_include_dir" ; then
+-          oci_ldflags="-L$oracle_lib_dir -lclntsh"
++          oci_ldflags="-L$oracle_lib_dir"
+         else
+-          oci_ldflags="-L$oracle_lib_dir -L$oracle_lib_dir2 -lclntsh"
++          oci_ldflags="-L$oracle_lib_dir -L$oracle_lib_dir2"
+         fi
+         LDFLAGS="$LDFLAGS $oci_ldflags"
++	LIBS="$LIBS -lclntsh"
+ 
+         dnl
+         dnl Check OCI headers
+@@ -231,7 +233,7 @@
+                     ]]
+                 )],
+                 [
+-                ORACLE_OCI_LDFLAGS="$oci_ldflags"
++                ORACLE_OCI_LDFLAGS="$oci_ldflags -lclntsh"
+                 oci_lib_found="yes"
+                 AC_MSG_RESULT([yes])
+                 ],
+@@ -245,6 +247,7 @@
+ 
+         CPPFLAGS="$saved_CPPFLAGS"
+         LDFLAGS="$saved_LDFLAGS"
++        LIBS="$saved_LIBS"
+     fi
+ 
+     dnl
diff --git a/gdal-rasdaman.patch b/gdal-rasdaman.patch
new file mode 100644
index 0000000..5d5d9c0
--- /dev/null
+++ b/gdal-rasdaman.patch
@@ -0,0 +1,20 @@
+--- gdal-1.11.0/configure.in.orig	2014-06-14 20:12:03.704706951 +0200
++++ gdal-1.11.0/configure.in	2014-06-14 20:53:44.987988150 +0200
+@@ -4182,7 +4182,7 @@
+   AC_CHECK_LIB(raslib,main,RASDAMAN_ENABLED=yes,,,)
+ 
+   if test -n "$RASDAMAN_ENABLED" ; then
+-      RASDAMAN_LIB="-lrasodmg -lclientcomm -lcompression -lnetwork -lraslib"
++      RASDAMAN_LIB="-lrasodmg -lclientcomm -lnetwork -lraslib"
+       OPT_GDAL_FORMATS="rasdaman $OPT_GDAL_FORMATS"
+       AC_MSG_RESULT([        using rasdaman from system libs.])
+   else
+@@ -4195,7 +4195,7 @@
+ 
+   if test -f $RASDAMAN_DIR/include/rasdaman.hh -a -d$RASDAMAN_DIR/lib ; then
+       RASDAMAN_INC=-I$RASDAMAN_DIR/include
+-      RASDAMAN_LIB="-L$RASDAMAN_DIR/lib -lrasodmg -lclientcomm -lcompression -lnetwork -lraslib"
++      RASDAMAN_LIB="-L$RASDAMAN_DIR/lib -lrasodmg -lclientcomm -lnetwork -lraslib"
+   else
+       AC_MSG_ERROR("Could not find rasdaman.hh or libraslib.a in $RASDAMAN_DIR.")
+   fi
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gdal.git/commitdiff/66daf0b18145ccf574f66758c88fd0c5e7e05f40



More information about the pld-cvs-commit mailing list