diff --git a/.gitignore b/.gitignore index 36cb8f7..b0ee9b5 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/qgis-1.7.0-georef-crash.patch b/qgis-1.7.0-georef-crash.patch deleted file mode 100644 index 9905d2c..0000000 --- a/qgis-1.7.0-georef-crash.patch +++ /dev/null @@ -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 - #include - #include --#include - - #include - #include -@@ -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; diff --git a/qgis-1.7.0-histogram.patch b/qgis-1.7.0-histogram.patch deleted file mode 100644 index 459d259..0000000 --- a/qgis-1.7.0-histogram.patch +++ /dev/null @@ -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 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" ); -+ } - } - - } diff --git a/qgis-1.7.1-spatialindex.patch b/qgis-1.7.1-spatialindex.patch new file mode 100644 index 0000000..ae9dd2e --- /dev/null +++ b/qgis-1.7.1-spatialindex.patch @@ -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 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 ); + diff --git a/qgis.spec b/qgis.spec index ee07ffc..7e18157 100644 --- a/qgis.spec +++ b/qgis.spec @@ -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 - 1.7.2-1 +- Updated for new release +- No more themes directory +- Remove dispensable geo-referencing patch + +* Sun Oct 16 2011 Volker Fröhlich - 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 - 1.7.1-1 - Update for new release - Drop one patch that made it into the release diff --git a/sources b/sources index 64aeff4..59bf131 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -677dcb9d0d53cc7c2a6451590a362477 qgis-1.7.1.tar.bz2 +bb5fddbe1747ff2e59e2a9b5f9a0b7b2 qgis-1.7.2.tar.bz2