UPDATE FOR VERSION 1.7.2

- Remove georef and histogram patches
- Add spatialindex patch
This commit is contained in:
Volker Fröhlich 2011-11-16 18:27:59 +01:00
parent fedeff340e
commit f746207dc6
6 changed files with 286 additions and 115 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ qgis_1.5.0.tar.gz
/qgis_1.6.0.tar.gz
/qgis-1.7.0.tar.bz2
/qgis-1.7.1.tar.bz2
/qgis-1.7.2.tar.bz2

View File

@ -1,33 +0,0 @@
--- qgis-1.7.0/src/plugins/georeferencer/qgsimagewarper.cpp 2011-06-05 13:59:48.000000000 +0200
+++ qgis-1.7.0-georef-crash/src/plugins/georeferencer/qgsimagewarper.cpp 2011-06-11 23:42:55.424025275 +0200
@@ -17,7 +17,6 @@
#include <cmath>
#include <iostream>
#include <cstdio>
-#include <assert.h>
#include <cpl_conv.h>
#include <cpl_string.h>
@@ -30,6 +29,7 @@
#include "qgsimagewarper.h"
#include "qgsgeoreftransform.h"
+#include "qgslogger.h"
#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1800
#define TO8F(x) (x).toUtf8().constData()
@@ -195,8 +195,12 @@
if ( destResY > 0.0 ) destResY = -destResY;
// Assert that the north-up convention is fullfiled by GDALSuggestedWarpOutput (should always be the case)
- assert( adfGeoTransform[0] > 0.0 );
- assert( adfGeoTransform[5] < 0.0 );
+ // Asserts are bad as they just crash out, changed to just return false. TS
+ if ( adfGeoTransform[0] <= 0.0 || adfGeoTransform[5] >= 0.0 )
+ {
+ QgsDebugMsg("Image is not north up after GDALSuggestedWarpOutput, bailing out.");
+ return false;
+ }
// Find suggested output image extent (in georeferenced units)
double minX = adfGeoTransform[0];
double maxX = adfGeoTransform[0] + adfGeoTransform[1] * destPixels;

View File

@ -1,48 +0,0 @@
diff --git a/src/core/raster/qgsrasterbandstats.h b/src/core/raster/qgsrasterbandstats.h
index 1d0c52e..25b5bb9 100644
--- a/src/core/raster/qgsrasterbandstats.h
+++ b/src/core/raster/qgsrasterbandstats.h
@@ -45,6 +45,7 @@ class CORE_EXPORT QgsRasterBandStats
stdDev = 0.0;
sum = 0.0;
elementCount = 0;
+ histogramVector = new HistogramVector();
isHistogramEstimated = false;
isHistogramOutOfRange = false;
}
diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp
index 32455e8..92c056c 100644
--- a/src/core/raster/qgsrasterlayer.cpp
+++ b/src/core/raster/qgsrasterlayer.cpp
@@ -2345,7 +2345,7 @@ void QgsRasterLayer::setDataProvider( QString const & provider,
myRasterBandStats.bandName = mDataProvider->generateBandName( i );
myRasterBandStats.bandNumber = i;
myRasterBandStats.statsGathered = false;
- myRasterBandStats.histogramVector = new QgsRasterBandStats::HistogramVector();
+ myRasterBandStats.histogramVector->clear();
//Store the default color table
//readColorTable( i, &myRasterBandStats.colorTable );
QList<QgsColorRampShader::ColorRampItem> ct;
diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp
index 51fb786..57d1851 100644
--- a/src/providers/gdal/qgsgdalprovider.cpp
+++ b/src/providers/gdal/qgsgdalprovider.cpp
@@ -1320,8 +1320,16 @@ void QgsGdalProvider::populateHistogram( int theBandNo, QgsRasterBandStats & t
for ( int myBin = 0; myBin < theBinCount; myBin++ )
{
- theBandStats.histogramVector->push_back( myHistogramArray[myBin] );
- QgsDebugMsg( "Added " + QString::number( myHistogramArray[myBin] ) + " to histogram vector" );
+ if ( myHistogramArray[myBin] < 0 ) //can't have less than 0 pixels of any value
+ {
+ theBandStats.histogramVector->push_back( 0 );
+ QgsDebugMsg( "Added 0 to histogram vector as freq was negative!" );
+ }
+ else
+ {
+ theBandStats.histogramVector->push_back( myHistogramArray[myBin] );
+ QgsDebugMsg( "Added " + QString::number( myHistogramArray[myBin] ) + " to histogram vector" );
+ }
}
}

View File

@ -0,0 +1,257 @@
--- qgis-1.7.1/CMakeLists.txt 2011-09-24 01:38:02.000000000 +0200
+++ ../BUILD/qgis-1.7.1/CMakeLists.txt 2011-10-16 16:17:07.042202703 +0200
@@ -66,7 +66,9 @@
SET (POSTGRESQL_PREFIX "" CACHE PATH "Path to POSTGRESQL base directory")
ENDIF (WITH_POSTGRESQL)
-SET (WITH_INTERNAL_QWTPOLAR TRUE CACHE BOOL "Use internal built of QwtPolar")
+SET (WITH_INTERNAL_QWTPOLAR TRUE CACHE BOOL "Use internal build of QwtPolar")
+
+SET (WITH_INTERNAL_SPATIALINDEX TRUE CACHE BOOL "Use internal build of Spatialindex")
SET (WITH_SPATIALITE TRUE CACHE BOOL "Determines whether SPATIALITE support should be built")
@@ -145,6 +147,11 @@
FIND_PACKAGE(GSL) # Georeferencer
FIND_PACKAGE(GEOS)
FIND_PACKAGE(GDAL)
+
+IF (NOT WITH_INTERNAL_SPATIALINDEX)
+ FIND_PACKAGE(Spatialindex REQUIRED)
+ENDIF(NOT WITH_INTERNAL_SPATIALINDEX)
+
FIND_PACKAGE(Qwt REQUIRED)
IF (NOT WITH_INTERNAL_QWTPOLAR)
FIND_PACKAGE(QwtPolar REQUIRED)
--- qgis-1.7.1/src/core/CMakeLists.txt 2011-09-24 01:38:02.000000000 +0200
+++ ../BUILD/qgis-1.7.1/src/core/CMakeLists.txt 2011-10-16 16:19:28.845050529 +0200
@@ -266,7 +266,6 @@
raster
renderer
symbology
- spatialindex/include
symbology-ng
gps/qextserialport
${PROJ_INCLUDE_DIR}
@@ -274,6 +273,12 @@
${GDAL_INCLUDE_DIR}
)
+IF (NOT WITH_INTERNAL_SPATIALINDEX)
+ INCLUDE_DIRECTORIES(${SPATIALINDEX_INCLUDE_DIR})
+ELSE (NOT WITH_INTERNAL_SPATIALINDEX)
+ INCLUDE_DIRECTORIES(spatialindex/include)
+ENDIF (NOT WITH_INTERNAL_SPATIALINDEX)
+
IF (NOT WITH_INTERNAL_SPATIALITE)
INCLUDE_DIRECTORIES(${SQLITE3_INCLUDE_DIR})
ENDIF (NOT WITH_INTERNAL_SPATIALITE)
@@ -296,25 +301,27 @@
#############################################################
# spatial indexing library
-# add path prefix to every specified file
-MACRO(PATH_PREFIX OUTPUT PREFIX)
- FOREACH(F ${ARGN})
- SET(${OUTPUT} ${${OUTPUT}} ${PREFIX}/${F})
- ENDFOREACH(F)
-ENDMACRO(PATH_PREFIX)
-
-# tools library
-PATH_PREFIX(TOOLS_SRC tools ExternalSort.cc ExternalSort.h TemporaryFile.cc Tools.cc)
-PATH_PREFIX(GEOM_SRC geometry LineSegment.cc Point.cc Region.cc)
-
-# spatial index library
-PATH_PREFIX(SPINDEX_SRC spatialindex SpatialIndexImpl.cc)
-PATH_PREFIX(STMAN_SRC storagemanager Buffer.cc DiskStorageManager.cc MemoryStorageManager.cc RandomEvictionsBuffer.cc)
-PATH_PREFIX(RTREE_SRC rtree BulkLoader.cc Index.cc Leaf.cc Node.cc RTree.cc Statistics.cc)
-
-SET(SPINDEX_SRC ${TOOLS_SRC} ${GEOM_SRC} ${SPINDEX_SRC} ${STMAN_SRC} ${RTREE_SRC})
-
-PATH_PREFIX(INDEX_SRC spatialindex ${SPINDEX_SRC})
+IF (WITH_INTERNAL_SPATIALINDEX)
+ # add path prefix to every specified file
+ MACRO(PATH_PREFIX OUTPUT PREFIX)
+ FOREACH(F ${ARGN})
+ SET(${OUTPUT} ${${OUTPUT}} ${PREFIX}/${F})
+ ENDFOREACH(F)
+ ENDMACRO(PATH_PREFIX)
+
+ # tools library
+ PATH_PREFIX(TOOLS_SRC tools ExternalSort.cc ExternalSort.h TemporaryFile.cc Tools.cc)
+ PATH_PREFIX(GEOM_SRC geometry LineSegment.cc Point.cc Region.cc)
+
+ # spatial index library
+ PATH_PREFIX(SPINDEX_SRC spatialindex SpatialIndexImpl.cc)
+ PATH_PREFIX(STMAN_SRC storagemanager Buffer.cc DiskStorageManager.cc MemoryStorageManager.cc RandomEvictionsBuffer.cc)
+ PATH_PREFIX(RTREE_SRC rtree BulkLoader.cc Index.cc Leaf.cc Node.cc RTree.cc Statistics.cc)
+
+ SET(SPINDEX_SRC ${TOOLS_SRC} ${GEOM_SRC} ${SPINDEX_SRC} ${STMAN_SRC} ${RTREE_SRC})
+
+ PATH_PREFIX(INDEX_SRC spatialindex ${SPINDEX_SRC})
+ENDIF (WITH_INTERNAL_SPATIALINDEX)
#############################################################
# qgis_core library
@@ -360,6 +367,11 @@
TARGET_LINK_LIBRARIES(qgis_core ${SQLITE3_LIBRARY})
ENDIF (WITH_INTERNAL_SPATIALITE)
+IF (NOT WITH_INTERNAL_SPATIALINDEX)
+ TARGET_LINK_LIBRARIES(qgis_core ${SPATIALINDEX_LIBRARY})
+ENDIF (NOT WITH_INTERNAL_SPATIALINDEX)
+
+
IF (APPLE)
SET_TARGET_PROPERTIES(qgis_core PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE )
ENDIF (APPLE)
--- qgis-1.7.1/cmake/FindSpatialindex.cmake 1970-01-01 01:00:00.000000000 +0100
+++ ../BUILD/qgis-1.7.1/cmake/FindSpatialindex.cmake 2011-10-16 16:17:07.043202653 +0200
@@ -0,0 +1,41 @@
+# Find Spatialindex
+# ~~~~~~~~
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+# Once run this will define:
+#
+# SPATIALINDEX_FOUND = system has Spatialindex lib
+# SPATIALINDEX_LIBRARY = full path to the Spatialindex library
+# SPATIALINDEX_INCLUDE_DIR = where to find headers
+#
+
+
+FIND_PATH(SPATIALINDEX_INCLUDE_DIR NAMES SpatialIndex.h PATHS
+ /usr/include
+ /usr/local/include
+ "$ENV{LIB_DIR}/include"
+ "$ENV{INCLUDE}"
+ PATH_SUFFIXES spatialindex
+ )
+
+FIND_LIBRARY(SPATIALINDEX_LIBRARY NAMES spatialindex PATHS
+ /usr/lib
+ /usr/local/lib
+ "$ENV{LIB_DIR}/lib"
+ "$ENV{LIB}/lib"
+ )
+
+IF (SPATIALINDEX_INCLUDE_DIR AND SPATIALINDEX_LIBRARY)
+ SET(SPATIALINDEX_FOUND TRUE)
+ENDIF (SPATIALINDEX_INCLUDE_DIR AND SPATIALINDEX_LIBRARY)
+
+IF (SPATIALINDEX_FOUND)
+ IF (NOT SPATIALINDEX_FIND_QUIETLY)
+ MESSAGE(STATUS "Found Spatialindex: ${SPATIALINDEX_LIBRARY}")
+ ENDIF (NOT SPATIALINDEX_FIND_QUIETLY)
+ELSE (SPATIALINDEX_FOUND)
+ IF (SPATIALINDEX_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find Spatialindex")
+ ENDIF (SPATIALINDEX_FIND_REQUIRED)
+ENDIF (SPATIALINDEX_FOUND)
--- qgis-1.7.1/src/core/spatialindex/qgsspatialindex.h 2011-09-24 01:38:02.000000000 +0200
+++ ../BUILD/qgis-1.7.1/src/core/spatialindex/qgsspatialindex.h 2011-10-16 16:21:28.682006432 +0200
@@ -22,6 +22,8 @@
{
class IStorageManager;
class ISpatialIndex;
+ class Region;
+ class Point;
namespace StorageManager
{
@@ -29,14 +31,6 @@
}
}
-namespace Tools
-{
- namespace Geometry
- {
- class Region;
- }
-}
-
class QgsFeature;
class QgsRectangle;
class QgsPoint;
@@ -82,9 +76,9 @@
protected:
- Tools::Geometry::Region rectToRegion( QgsRectangle rect );
+ SpatialIndex::Region rectToRegion( QgsRectangle rect );
- bool featureInfo( QgsFeature& f, Tools::Geometry::Region& r, long& id );
+ bool featureInfo( QgsFeature& f, SpatialIndex::Region& r, long& id );
private:
--- qgis-1.7.1/src/core/spatialindex/qgsspatialindex.cpp 2011-09-24 01:38:02.000000000 +0200
+++ ../BUILD/qgis-1.7.1/src/core/spatialindex/qgsspatialindex.cpp 2011-10-16 17:06:45.806073042 +0200
@@ -66,7 +66,7 @@
RTree::RTreeVariant variant = RTree::RV_RSTAR;
// create R-tree
- long indexId;
+ SpatialIndex::id_type indexId;
mRTree = RTree::createNewRTree( *mStorage, fillFactor, indexCapacity,
leafCapacity, dimension, variant, indexId );
}
@@ -78,17 +78,17 @@
delete mStorageManager;
}
-Tools::Geometry::Region QgsSpatialIndex::rectToRegion( QgsRectangle rect )
+SpatialIndex::Region QgsSpatialIndex::rectToRegion( QgsRectangle rect )
{
double pt1[2], pt2[2];
pt1[0] = rect.xMinimum();
pt1[1] = rect.yMinimum();
pt2[0] = rect.xMaximum();
pt2[1] = rect.yMaximum();
- return Tools::Geometry::Region( pt1, pt2, 2 );
+ return Region( pt1, pt2, 2 );
}
-bool QgsSpatialIndex::featureInfo( QgsFeature& f, Tools::Geometry::Region& r, long& id )
+bool QgsSpatialIndex::featureInfo( QgsFeature& f, Region& r, long& id )
{
QgsGeometry *g = f.geometry();
if ( !g )
@@ -101,7 +101,7 @@
bool QgsSpatialIndex::insertFeature( QgsFeature& f )
{
- Tools::Geometry::Region r;
+ Region r;
long id;
if ( !featureInfo( f, r, id ) )
return false;
@@ -131,7 +131,7 @@
bool QgsSpatialIndex::deleteFeature( QgsFeature& f )
{
- Tools::Geometry::Region r;
+ Region r;
long id;
if ( !featureInfo( f, r, id ) )
return false;
@@ -145,7 +145,7 @@
QList<int> list;
QgisVisitor visitor( list );
- Tools::Geometry::Region r = rectToRegion( rect );
+ Region r = rectToRegion( rect );
mRTree->intersectsWithQuery( r, visitor );
@@ -160,7 +160,7 @@
double pt[2];
pt[0] = point.x();
pt[1] = point.y();
- Tools::Geometry::Point p( pt, 2 );
+ Point p( pt, 2 );
mRTree->nearestNeighborQuery( neighbors, p, visitor );

View File

@ -8,7 +8,7 @@
%endif
Name: qgis
Version: 1.7.1
Version: 1.7.2
Release: 1%{?dist}
Summary: A user friendly Open Source Geographic Information System
@ -28,13 +28,9 @@ Source5: %{name}-mime.xml
# Fix detection problem for GRASS libraries
Patch0: qgis-1.5.0-grass.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=712620
# Avoid segfault when geo-referencing
# Was added to 1.7.2
Patch1: %{name}-1.7.0-georef-crash.patch
# https://github.com/qgis/Quantum-GIS/commit/7d145a94524a6bfc025bfe36388c071f35a16f8a
# https://github.com/qgis/Quantum-GIS/commit/834fc0b710171a80a29038f74ad2c603bf015424
# Allow to build with system-wide spatialindex
# Solved for releases after the 1.7 series
Patch2: %{name}-1.7.1-spatialindex.patch
# Leaving it to make life easier for ELGIS, as long as they target RHEL 5
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@ -52,12 +48,7 @@ BuildRequires: fcgi-devel
BuildRequires: flex bison
BuildRequires: gdal-devel
BuildRequires: geos-devel
# No GRASS package in EPEL 6
%if ! 0%{?rhel}
BuildRequires: grass-devel
%endif
BuildRequires: gsl-devel
%ifnarch ppc64
@ -73,9 +64,9 @@ BuildRequires: qt4-devel
BuildRequires: qt4-webkit-devel
BuildRequires: qwt-devel
# Coming soon: https://bugzilla.redhat.com/show_bug.cgi?id=706593
BuildRequires: qwtpolar-devel
BuildRequires: sip-devel > 4.7
BuildRequires: spatialindex-devel
BuildRequires: sqlite-devel
Requires: gpsbabel
@ -108,7 +99,6 @@ Requires: %{name} = %{version}-%{release}
%description devel
Development packages for Quantum GIS including the C header files.
%if ! 0%{?rhel}
%package grass
Summary: GRASS Support Libraries for Quantum GIS
Group: Applications/Engineering
@ -119,7 +109,6 @@ Requires: grass
%description grass
GRASS plugin for Quantum GIS required to interface with the GRASS system.
%endif
%package python
Summary: Python integration and plug-ins for Quantum GIS
@ -149,7 +138,7 @@ Please refer to %{name}-mapserver-README.fedora for details!
%prep
%setup -q
%patch0 -p1 -b .grass
%patch1 -p1 -b .georef
%patch2 -p1 -b .spatialindex
# Update FSF address or ship a GPLv3+ license file
# http://hub.qgis.org/issues/3789
@ -163,14 +152,13 @@ install -pm0644 %{SOURCE4} .
rm -rf src/core/spatialite
rm -rf src/core/gps/qwtpolar
#find src/core/spatialindex -type d -exec rm -rf {} \;
#rm -rf src/core/spatialindex/rtree
#rm -rf src/core/pal
# File layout changes for releases after 1.7 series
find src/core/spatialindex -mindepth 1 -depth -type d -exec rm -rf {} \;
# Solved for releases after 1.7 series
chmod 644 src/mapserver/qgswmsserver.cpp src/app/composer/qgscomposer.cpp
# The path from WITH_GRASS is used, when trying to find GISBASE.
%build
%cmake \
%{_cmake_skip_rpath} \
@ -186,16 +174,13 @@ chmod 644 src/mapserver/qgswmsserver.cpp src/app/composer/qgscomposer.cpp
-D GDAL_LIBRARY=%{_libdir}/libgdal.so \
-D ENABLE_TESTS:BOOL=FALSE \
-D WITH_INTERNAL_QWTPOLAR:BOOL=FALSE \
-D WITH_INTERNAL_SPATIALINDEX:BOOL=FALSE \
%{configure_with_spatialite} \
.
# Parallel make lead to race conditions
# http://hub.qgis.org/issues/2880
#make
# Seems to be fine from version 1.7 on
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
@ -281,11 +266,9 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%posttrans
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%if ! 0%{?rhel}
%post grass -p /sbin/ldconfig
%postun grass -p /sbin/ldconfig
%endif
%post python -p /sbin/ldconfig
@ -299,6 +282,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_datadir}/%{name}/doc
%dir %{_datadir}/%{name}/i18n/
%if ! (0%{?fedora} > 14 || 0%{?rhel})
%lang(sr@latin) %{_datadir}/%{name}/i18n/%{name}_sr@latin.qm
%endif
%{_libdir}/lib%{name}_analysis.so.%{version}
%{_libdir}/lib%{name}_core.so.%{version}
%{_libdir}/lib%{name}_gui.so.%{version}
@ -317,20 +303,17 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_datadir}/%{name}/images
%{_datadir}/%{name}/resources
%{_datadir}/%{name}/svg
%if ! 0%{?rhel}
%exclude %{_libdir}/libqgisgrass.so.%{version}
%exclude %{_libdir}/%{name}/libgrassprovider.so
%exclude %{_libdir}/%{name}/libgrassrasterprovider.so
%exclude %{_libdir}/%{name}/libgrassplugin.so
%exclude %{_libdir}/%{name}/grass
%endif
%files devel
%{_datadir}/%{name}/FindQGIS.cmake
%{_includedir}/%{name}
%{_libdir}/lib%{name}*.so
%if ! 0%{?rhel}
%files grass
%{_libdir}/lib%{name}grass.so.%{version}
%{_libdir}/%{name}/libgrassprovider.so
@ -338,8 +321,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_libdir}/%{name}/libgrassplugin.so
%{_libdir}/%{name}/grass
%{_datadir}/%{name}/grass
%{_datadir}/%{name}/themes
%endif
%files python
%{_libdir}/libqgispython.so.%{version}
@ -352,6 +333,19 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_libexecdir}/%{name}
%changelog
* Tue Nov 15 2011 Volker Fröhlich <volker27@gmx.at> - 1.7.2-1
- Updated for new release
- No more themes directory
- Remove dispensable geo-referencing patch
* Sun Oct 16 2011 Volker Fröhlich <volker27@gmx.at> - 1.7.1-2
- Findlang doesn't recognize sr@latin in Fedora 14 and older
- Build with system-wide spatialindex
- Remove if structures intended for EPEL package
Due to the rapid development in QGIS and the libraries it uses,
QGIS will not go to EPEL now; ELGIS provides rebuilds with more
current versions: http://elgis.argeo.org/
* Sat Sep 24 2011 Volker Fröhlich <volker27@gmx.at> - 1.7.1-1
- Update for new release
- Drop one patch that made it into the release

View File

@ -1 +1 @@
677dcb9d0d53cc7c2a6451590a362477 qgis-1.7.1.tar.bz2
bb5fddbe1747ff2e59e2a9b5f9a0b7b2 qgis-1.7.2.tar.bz2