diff --git a/.gitignore b/.gitignore index f6fc754..4443942 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ qgis_1.5.0.tar.gz /qgis-2.4.0.tar.bz2 /qgis-2.6.0.tar.bz2 /qgis-2.6.1.tar.bz2 +/qgis-2.8.1.tar.bz2 +/qgis-2.8.2.tar.bz2 diff --git a/qgis-2.8.1-arm.patch b/qgis-2.8.1-arm.patch new file mode 100644 index 0000000..79f1d2f --- /dev/null +++ b/qgis-2.8.1-arm.patch @@ -0,0 +1,430 @@ +commit 1aff7335d004bc410eb61e1436ee7648716f9319 +Author: Juergen E. Fischer +Date: Mon Mar 9 09:27:27 2015 +0100 + + fix arm build + +diff --git a/src/app/qgsdecorationgrid.cpp b/src/app/qgsdecorationgrid.cpp +index ba2f8c0..ba7735d 100644 +--- a/src/app/qgsdecorationgrid.cpp ++++ b/src/app/qgsdecorationgrid.cpp +@@ -217,14 +217,14 @@ void QgsDecorationGrid::render( QPainter * p ) + + // p->setPen( mGridPen ); + +- QList< QPair< double, QLineF > > verticalLines; ++ QList< QPair< qreal, QLineF > > verticalLines; + yGridLines( verticalLines ); +- QList< QPair< double, QLineF > > horizontalLines; ++ QList< QPair< qreal, QLineF > > horizontalLines; + xGridLines( horizontalLines ); + //QgsDebugMsg( QString("grid has %1 vertical and %2 horizontal lines").arg( verticalLines.size() ).arg( horizontalLines.size() ) ); + +- QList< QPair< double, QLineF > >::const_iterator vIt = verticalLines.constBegin(); +- QList< QPair< double, QLineF > >::const_iterator hIt = horizontalLines.constBegin(); ++ QList< QPair< qreal, QLineF > >::const_iterator vIt = verticalLines.constBegin(); ++ QList< QPair< qreal, QLineF > >::const_iterator hIt = horizontalLines.constBegin(); + + //simpler approach: draw vertical lines first, then horizontal ones + if ( mGridStyle == QgsDecorationGrid::Line ) +@@ -338,7 +338,7 @@ void QgsDecorationGrid::render( QPainter * p ) + } + } + +-void QgsDecorationGrid::drawCoordinateAnnotations( QPainter* p, const QList< QPair< double, QLineF > >& hLines, const QList< QPair< double, QLineF > >& vLines ) ++void QgsDecorationGrid::drawCoordinateAnnotations( QPainter* p, const QList< QPair< qreal, QLineF > >& hLines, const QList< QPair< qreal, QLineF > >& vLines ) + { + if ( !p ) + { +@@ -346,7 +346,7 @@ void QgsDecorationGrid::drawCoordinateAnnotations( QPainter* p, const QList< QPa + } + + QString currentAnnotationString; +- QList< QPair< double, QLineF > >::const_iterator it = hLines.constBegin(); ++ QList< QPair< qreal, QLineF > >::const_iterator it = hLines.constBegin(); + for ( ; it != hLines.constEnd(); ++it ) + { + currentAnnotationString = QString::number( it->first, 'f', mGridAnnotationPrecision ); +@@ -566,7 +566,7 @@ QPolygonF canvasExtent() + return poly; + } + +-int QgsDecorationGrid::xGridLines( QList< QPair< double, QLineF > >& lines ) const ++int QgsDecorationGrid::xGridLines( QList< QPair< qreal, QLineF > >& lines ) const + { + // prepare horizontal lines + lines.clear(); +@@ -612,7 +612,7 @@ int QgsDecorationGrid::xGridLines( QList< QPair< double, QLineF > >& lines ) con + return 0; + } + +-int QgsDecorationGrid::yGridLines( QList< QPair< double, QLineF > >& lines ) const ++int QgsDecorationGrid::yGridLines( QList< QPair< qreal, QLineF > >& lines ) const + { + // prepare vertical lines + +diff --git a/src/app/qgsdecorationgrid.h b/src/app/qgsdecorationgrid.h +index 22f4549..3ad7ebf 100644 +--- a/src/app/qgsdecorationgrid.h ++++ b/src/app/qgsdecorationgrid.h +@@ -199,7 +199,7 @@ class APP_EXPORT QgsDecorationGrid: public QgsDecorationItem + @param p drawing painter + @param hLines horizontal coordinate lines in item coordinates + @param vLines vertical coordinate lines in item coordinates*/ +- void drawCoordinateAnnotations( QPainter* p, const QList< QPair< double, QLineF > >& hLines, const QList< QPair< double, QLineF > >& vLines ); ++ void drawCoordinateAnnotations( QPainter* p, const QList< QPair< qreal, QLineF > >& hLines, const QList< QPair< qreal, QLineF > >& vLines ); + void drawCoordinateAnnotation( QPainter* p, const QPointF& pos, QString annotationString ); + /**Draws a single annotation + @param p drawing painter +@@ -209,10 +209,10 @@ class APP_EXPORT QgsDecorationGrid: public QgsDecorationItem + void drawAnnotation( QPainter* p, const QPointF& pos, int rotation, const QString& annotationText ); + /**Returns the grid lines with associated coordinate value + @return 0 in case of success*/ +- int xGridLines( QList< QPair< double, QLineF > >& lines ) const; ++ int xGridLines( QList< QPair< qreal, QLineF > >& lines ) const; + /**Returns the grid lines for the y-coordinates. Not vertical in case of rotation + @return 0 in case of success*/ +- int yGridLines( QList< QPair< double, QLineF > >& lines ) const; ++ int yGridLines( QList< QPair< qreal, QLineF > >& lines ) const; + /**Returns the item border of a point (in item coordinates)*/ + Border borderForLineCoord( const QPointF& point, QPainter* p ) const; + +diff --git a/src/app/qgsmapmouseevent.cpp b/src/app/qgsmapmouseevent.cpp +index 997aaa0..631c750 100644 +--- a/src/app/qgsmapmouseevent.cpp ++++ b/src/app/qgsmapmouseevent.cpp +@@ -86,8 +86,7 @@ void QgsMapMouseEvent::snapPoint() + + QPoint QgsMapMouseEvent::mapToPixelCoordinates( QgsMapCanvas* canvas, const QgsPoint& point ) + { +- double x = point.x(); +- double y = point.y(); ++ qreal x = point.x(), y = point.y(); + + canvas->mapSettings().mapToPixel().transformInPlace( x, y ); + +diff --git a/src/core/composer/qgscomposermapgrid.cpp b/src/core/composer/qgscomposermapgrid.cpp +index 7d790e6..7656be2 100644 +--- a/src/core/composer/qgscomposermapgrid.cpp ++++ b/src/core/composer/qgscomposermapgrid.cpp +@@ -1838,7 +1838,7 @@ bool QgsComposerMapGrid::shouldShowDivisionForDisplayMode( const QgsComposerMapG + || ( mode == QgsComposerMapGrid::LongitudeOnly && coordinate == QgsComposerMapGrid::Longitude ); + } + +-bool sortByDistance( const QPair& a, const QPair& b ) ++bool sortByDistance( const QPair& a, const QPair& b ) + { + return a.first < b.first; + } +@@ -1885,7 +1885,7 @@ QgsComposerMapGrid::BorderSide QgsComposerMapGrid::borderForLineCoord( const QPo + } + + //otherwise, guess side based on closest map side to point +- QList< QPair > distanceToSide; ++ QList< QPair > distanceToSide; + distanceToSide << qMakePair( p.x(), QgsComposerMapGrid::Left ); + distanceToSide << qMakePair( mComposerMap->rect().width() - p.x(), QgsComposerMapGrid::Right ); + distanceToSide << qMakePair( p.y(), QgsComposerMapGrid::Top ); +diff --git a/src/core/qgsgeometry.cpp b/src/core/qgsgeometry.cpp +index 81753c4..ab7281a 100644 +--- a/src/core/qgsgeometry.cpp ++++ b/src/core/qgsgeometry.cpp +@@ -4679,7 +4679,7 @@ bool QgsGeometry::convertToMultiType() + + void QgsGeometry::transformVertex( QgsWkbPtr &wkbPtr, const QTransform& trans, bool hasZValue ) + { +- double x, y, rotated_x, rotated_y; ++ qreal x, y, rotated_x, rotated_y; + + QgsWkbPtr tmp = wkbPtr; + tmp >> x >> y; +diff --git a/src/core/qgsgeometry.h b/src/core/qgsgeometry.h +index 46f4a7f..36d23ac 100644 +--- a/src/core/qgsgeometry.h ++++ b/src/core/qgsgeometry.h +@@ -686,12 +686,18 @@ class CORE_EXPORT QgsWkbPtr + inline const QgsWkbPtr &operator>>( unsigned int &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline const QgsWkbPtr &operator>>( char &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline const QgsWkbPtr &operator>>( QGis::WkbType &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } ++#ifdef QT_ARCH_ARM ++ inline const QgsWkbPtr &operator>>( qreal &v ) const { double d; memcpy( &d, mP, sizeof( d ) ); mP += sizeof( d ); v=d; return *this; } ++#endif + + inline QgsWkbPtr &operator<<( const double &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline QgsWkbPtr &operator<<( const int &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline QgsWkbPtr &operator<<( const unsigned int &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline QgsWkbPtr &operator<<( const char &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline QgsWkbPtr &operator<<( const QGis::WkbType &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; } ++#ifdef QT_ARCH_ARM ++ inline QgsWkbPtr &operator<<( const qreal &v ) { double d = v; memcpy( mP, &d, sizeof( d ) ); mP += sizeof( d ); return *this; } ++#endif + + inline void operator+=( int n ) { mP += n; } + +@@ -710,6 +716,9 @@ class CORE_EXPORT QgsConstWkbPtr + inline const QgsConstWkbPtr &operator>>( unsigned int &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline const QgsConstWkbPtr &operator>>( char &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } + inline const QgsConstWkbPtr &operator>>( QGis::WkbType &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; } ++#ifdef QT_ARCH_ARM ++ inline const QgsConstWkbPtr &operator>>( qreal &v ) const { double d; memcpy( &d, mP, sizeof( d ) ); mP += sizeof( d ); v=d; return *this; } ++#endif + + inline void operator+=( int n ) { mP += n; } + +diff --git a/src/core/qgsmaptopixel.cpp b/src/core/qgsmaptopixel.cpp +index 16ade54..08e06e4 100644 +--- a/src/core/qgsmaptopixel.cpp ++++ b/src/core/qgsmaptopixel.cpp +@@ -114,22 +114,18 @@ void QgsMapToPixel::updateMatrix() + mMatrix = QTransform::fromTranslate( cx, cy ) + .rotate( rotation ) + .scale( 1 / mMapUnitsPerPixel, -1 / mMapUnitsPerPixel ) +- .translate( -xCenter, -yCenter ) +- ; ++ .translate( -xCenter, -yCenter ); + } + +-QgsPoint QgsMapToPixel::toMapPoint( double x, double y ) const ++QgsPoint QgsMapToPixel::toMapPoint( qreal x, qreal y ) const + { + bool invertible; + QTransform matrix = mMatrix.inverted( &invertible ); + assert( invertible ); +- double mx, my; ++ qreal mx, my; + matrix.map( x, y, &mx, &my ); +- QgsPoint ret( mx, my ); +- + //QgsDebugMsg(QString("XXX toMapPoint x:%1 y:%2 -> x:%3 y:%4").arg(x).arg(y).arg(mx).arg(my)); +- +- return ret; ++ return QgsPoint( mx, my ); + } + + QgsPoint QgsMapToPixel::toMapCoordinates( QPoint p ) const +@@ -232,42 +228,34 @@ QString QgsMapToPixel::showParameters() const + << " rotation: " << mRotation + << " size: " << mWidth << "x" << mHeight; + return rep; +- + } + +- +-QgsPoint QgsMapToPixel::transform( double x, double y ) const ++QgsPoint QgsMapToPixel::transform( qreal x, qreal y ) const + { + transformInPlace( x, y ); + return QgsPoint( x, y ); + } + +-QgsPoint QgsMapToPixel::transform( const QgsPoint& p ) const ++QgsPoint QgsMapToPixel::transform( const QgsPoint &p ) const + { +- double dx = p.x(); +- double dy = p.y(); +- transformInPlace( dx, dy ); +- ++ qreal x = p.x(), y = p.y(); ++ transformInPlace( x, y ); + // QgsDebugMsg(QString("Point to pixel...X : %1-->%2, Y: %3 -->%4").arg(p.x()).arg(dx).arg(p.y()).arg(dy)); +- return QgsPoint( dx, dy ); ++ return QgsPoint( x, y ); + } + +-void QgsMapToPixel::transform( QgsPoint* p ) const ++void QgsMapToPixel::transform( QgsPoint *p ) const + { +- double x = p->x(); +- double y = p->y(); ++ qreal x = p->x(), y = p->y(); + transformInPlace( x, y ); +- +-#ifdef QGISDEBUG + // QgsDebugMsg(QString("Point to pixel...X : %1-->%2, Y: %3 -->%4").arg(p->x()).arg(x).arg(p->y()).arg(y)); +-#endif + p->set( x, y ); + } + +-void QgsMapToPixel::transformInPlace( qreal& x, qreal& y ) const ++void QgsMapToPixel::transformInPlace( qreal &x, qreal &y ) const + { + // Map 2 Pixel +- double mx, my; ++ qreal mx, my; + mMatrix.map( x, y, &mx, &my ); + //QgsDebugMsg(QString("XXX transformInPlace X : %1-->%2, Y: %3 -->%4").arg(x).arg(mx).arg(y).arg(my)); + x = mx; y = my; +diff --git a/src/core/qgsmaptopixel.h b/src/core/qgsmaptopixel.h +index c11fb90..081e5d1 100644 +--- a/src/core/qgsmaptopixel.h ++++ b/src/core/qgsmaptopixel.h +@@ -74,7 +74,7 @@ class CORE_EXPORT QgsMapToPixel + * @param y y coordinate of point to transform + * @return QgsPoint in device coordinates + */ +- QgsPoint transform( double x, double y ) const; ++ QgsPoint transform( qreal x, qreal y ) const; + /*! Transform device coordinates to map (world) coordinates + * @param x x coordinate of point to be converted to map cooordinates + * @param y y coordinate of point to be converted to map cooordinates +@@ -110,7 +110,7 @@ class CORE_EXPORT QgsMapToPixel + */ + QgsPoint toMapCoordinates( QPoint p ) const; + +- QgsPoint toMapPoint( double x, double y ) const; ++ QgsPoint toMapPoint( qreal x, qreal y ) const; + + /*! Set map units per pixel + * @param mapUnitsPerPixel Map units per pixel +diff --git a/src/core/qgspallabeling.cpp b/src/core/qgspallabeling.cpp +index 768a511..b5ecc8c 100644 +--- a/src/core/qgspallabeling.cpp ++++ b/src/core/qgspallabeling.cpp +@@ -2105,7 +2105,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, const QgsRenderContext + QTransform t = QTransform::fromTranslate( center.x(), center.y() ); + t.rotate( -m2p.mapRotation() ); + t.translate( -center.x(), -center.y() ); +- double xPosR, yPosR; ++ qreal xPosR, yPosR; + t.map( xPos, yPos, &xPosR, &yPosR ); + xPos = xPosR; yPos = yPosR; + } +diff --git a/src/core/qgspointlocator.cpp b/src/core/qgspointlocator.cpp +index 534e7da..4bea360 100644 +--- a/src/core/qgspointlocator.cpp ++++ b/src/core/qgspointlocator.cpp +@@ -268,6 +268,8 @@ struct _CohenSutherland + y = y0 + ( y1 - y0 ) * ( mRect.xMinimum() - x0 ) / ( x1 - x0 ); + x = mRect.xMinimum(); + } ++ else ++ break; + + // Now we move outside point to intersection point to clip + // and get ready for next pass. +@@ -536,13 +538,13 @@ class QgsPointLocator_DumpTree : public SpatialIndex::IQueryStrategy + if ( !n ) + return; + +- qDebug( "NODE: %ld", n->getIdentifier() ); ++ QgsDebugMsg( QString( "NODE: %1" ).arg( n->getIdentifier() ) ); + if ( n->getLevel() > 0 ) + { + // inner nodes + for ( uint32_t cChild = 0; cChild < n->getChildrenCount(); cChild++ ) + { +- qDebug( "- CH: %ld", n->getChildIdentifier( cChild ) ); ++ QgsDebugMsg( QString( "- CH: %1" ).arg( n->getChildIdentifier( cChild ) ) ); + ids.push( n->getChildIdentifier( cChild ) ); + } + } +@@ -551,7 +553,7 @@ class QgsPointLocator_DumpTree : public SpatialIndex::IQueryStrategy + // leaves + for ( uint32_t cChild = 0; cChild < n->getChildrenCount(); cChild++ ) + { +- qDebug( "- L: %ld", n->getChildIdentifier( cChild ) ); ++ QgsDebugMsg( QString( "- L: %1" ).arg( n->getChildIdentifier( cChild ) ) ); + } + } + +diff --git a/src/core/symbology-ng/qgsrendererv2.cpp b/src/core/symbology-ng/qgsrendererv2.cpp +index 73b4f22..6e114ca 100644 +--- a/src/core/symbology-ng/qgsrendererv2.cpp ++++ b/src/core/symbology-ng/qgsrendererv2.cpp +@@ -39,10 +39,7 @@ const unsigned char* QgsFeatureRendererV2::_getPoint( QPointF& pt, QgsRenderCont + { + QgsConstWkbPtr wkbPtr( wkb + 1 ); + unsigned int wkbType; +- wkbPtr >> wkbType; +- +- double x, y; +- wkbPtr >> x >> y; ++ wkbPtr >> wkbType >> pt.rx() >> pt.ry(); + + if ( wkbType == QGis::WKBPoint25D ) + wkbPtr += sizeof( double ); +@@ -50,12 +47,11 @@ const unsigned char* QgsFeatureRendererV2::_getPoint( QPointF& pt, QgsRenderCont + if ( context.coordinateTransform() ) + { + double z = 0; // dummy variable for coordiante transform +- context.coordinateTransform()->transformInPlace( x, y, z ); ++ context.coordinateTransform()->transformInPlace( pt.rx(), pt.ry(), z ); + } + +- context.mapToPixel().transformInPlace( x, y ); ++ context.mapToPixel().transformInPlace( pt.rx(), pt.ry() ); + +- pt = QPointF( x, y ); + return wkbPtr; + } + +@@ -65,7 +61,7 @@ const unsigned char* QgsFeatureRendererV2::_getLineString( QPolygonF& pts, QgsRe + unsigned int wkbType, nPoints; + wkbPtr >> wkbType >> nPoints; + +- bool hasZValue = ( wkbType == QGis::WKBLineString25D ); ++ bool hasZValue = wkbType == QGis::WKBLineString25D; + + double x, y; + const QgsCoordinateTransform* ct = context.coordinateTransform(); +diff --git a/src/gui/qgsmapcanvasitem.cpp b/src/gui/qgsmapcanvasitem.cpp +index c0dd3ec..763f340 100644 +--- a/src/gui/qgsmapcanvasitem.cpp ++++ b/src/gui/qgsmapcanvasitem.cpp +@@ -63,7 +63,7 @@ QgsPoint QgsMapCanvasItem::toMapCoordinates( const QPoint& point ) const + + QPointF QgsMapCanvasItem::toCanvasCoordinates( const QgsPoint& point ) const + { +- double x = point.x(), y = point.y(); ++ qreal x = point.x(), y = point.y(); + mMapCanvas->getCoordinateTransform()->transformInPlace( x, y ); + return QPointF( x, y ) + mPanningOffset; + } +diff --git a/src/gui/qgsmaptool.cpp b/src/gui/qgsmaptool.cpp +index 463a07a..4fd0f4c 100644 +--- a/src/gui/qgsmaptool.cpp ++++ b/src/gui/qgsmaptool.cpp +@@ -68,7 +68,7 @@ QgsRectangle QgsMapTool::toLayerCoordinates( QgsMapLayer* layer, const QgsRectan + + QPoint QgsMapTool::toCanvasCoordinates( const QgsPoint& point ) + { +- double x = point.x(), y = point.y(); ++ qreal x = point.x(), y = point.y(); + mCanvas->getCoordinateTransform()->transformInPlace( x, y ); + return QPoint( qRound( x ), qRound( y ) ); + } +diff --git a/src/providers/wcs/qgswcsprovider.cpp b/src/providers/wcs/qgswcsprovider.cpp +index 77022ac..88618ef 100644 +--- a/src/providers/wcs/qgswcsprovider.cpp ++++ b/src/providers/wcs/qgswcsprovider.cpp +@@ -516,7 +516,7 @@ void QgsWcsProvider::readBlock( int bandNo, QgsRectangle const & viewExtent, in + // TODO: set block to null values, move that to function and call only if fails + memset( block, 0, pixelWidth * pixelHeight * QgsRasterBlock::typeSize( dataType( bandNo ) ) ); + +- // Requested extent must at least partialy overlap coverage extent, otherwise ++ // Requested extent must at least partially overlap coverage extent, otherwise + // server gives error. QGIS usually does not request blocks outside raster extent + // (higher level checks) but it is better to do check here as well + if ( !viewExtent.intersects( mCoverageExtent ) ) +diff --git a/tests/src/core/testqgsatlascomposition.cpp b/tests/src/core/testqgsatlascomposition.cpp +index 1a26cc2..4b94bfb 100644 +--- a/tests/src/core/testqgsatlascomposition.cpp ++++ b/tests/src/core/testqgsatlascomposition.cpp +@@ -308,13 +308,13 @@ void TestQgsAtlasComposition::predefinedscales_render() + mAtlasMap->setAtlasDriven( true ); + mAtlasMap->setAtlasScalingMode( QgsComposerMap::Predefined ); + +- QVector scales; +- scales << 1800000; +- scales << 5000000; ++ QVector scales; ++ scales << 1800000.0; ++ scales << 5000000.0; + mAtlas->setPredefinedScales( scales ); + + { +- const QVector& setScales = mAtlas->predefinedScales(); ++ const QVector &setScales = mAtlas->predefinedScales(); + for ( int i = 0; i < setScales.size(); i++ ) + { + QVERIFY( setScales[i] == scales[i] ); diff --git a/qgis-mapserver-README.fedora b/qgis-server-README.fedora similarity index 81% rename from qgis-mapserver-README.fedora rename to qgis-server-README.fedora index 9634c26..a18c90d 100644 --- a/qgis-mapserver-README.fedora +++ b/qgis-server-README.fedora @@ -1,14 +1,14 @@ ================================================== -QGIS Mapserver (might be renamed to "QGIS server") +QGIS server ================================================== -QGIS Mapserver allows you to publish your QGIS projects as Web Map +QGIS server allows you to publish your QGIS projects as Web Map Services (WMS). Simply layout your map in QGIS. The WMS will look -exactly the same, because QGIS Mapserver uses the same libraries for +exactly the same, because QGIS server uses the same libraries for rendering, as the desktop application does. A sample configuration file for Httpd is installed under -/etc/httpd/conf.d/qgis-mapserver.conf. +/etc/httpd/conf.d/qgis-server.conf. This configuration expects QGIS project files under /var/www/wms. To use it, reload the Httpd configuration and place the files you want to @@ -21,8 +21,8 @@ http://localhost/wms/my_qgis_project?SERVICE=WMS&REQUEST=GetCapabilities&VERSION QGIS project is "/var/www/wms/my_qgis_project.qgs". The sample configuration automatically adds the project file extension for you. -The actual data can stay where it is. Make sure QGIS Mapserver can -access the project file and don't forget to let Httpd reload its +The actual data can stay where it is. Make sure QGIS server can +access the project file and don't forget to let Httpd reload its configuration before sending your requests! Please fill in the metadata tab for your QGIS project. @@ -31,7 +31,7 @@ You can easily test your WMS by adding it as a WMS layer in QGIS. ================================================== -The traditional QGIS Mapserver configuration is less comfortable and +The traditional QGIS server configuration is less comfortable and I don't encourage it, unless you have a good reason to use it: This approach only allows for a single map service. @@ -43,7 +43,7 @@ directory as the FCGI binary: - wms_metadata.xml "admin.sld" uses extended SLD syntax (Style Layer Descriptor) to -describe symbolization of data. +describe symbolization of data. "wms_metadata.xml" supplies metadata for your WMS. You may also use this file with the kind of configuration mentioned on top. But if you want to diff --git a/qgis-mapserver-httpd.conf b/qgis-server-httpd.conf similarity index 100% rename from qgis-mapserver-httpd.conf rename to qgis-server-httpd.conf diff --git a/qgis.desktop b/qgis.desktop deleted file mode 100644 index fb8ff27..0000000 --- a/qgis.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Quantum GIS -GenericName=Geographic Information System -Comment= -Exec=qgis -Icon=qgis -Terminal=false -Type=Application -Categories=Education;Geography;Science; diff --git a/qgis.spec b/qgis.spec index aeb3eb5..8be8518 100644 --- a/qgis.spec +++ b/qgis.spec @@ -12,7 +12,7 @@ #TODO: Run test suite (see debian/rules) Name: qgis -Version: 2.6.1 +Version: 2.8.2 Release: 1%{?dist} Summary: A user friendly Open Source Geographic Information System Group: Applications/Engineering @@ -25,9 +25,9 @@ Source0: http://qgis.org/downloads/%{name}-%{version}.tar.bz2 # The used sources were released as a tarball, the below is only for work in progress #git archive --format=tar --prefix=qgis-1.8.0/ master | bzip2 >../qgis-1.8.0.tar.gz -# Sample configuration files for QGIS mapserver -Source2: %{name}-mapserver-httpd.conf -Source4: %{name}-mapserver-README.fedora +# Sample configuration files for QGIS server +Source2: %{name}-server-httpd.conf +Source4: %{name}-server-README.fedora # MIME definitions # Based on debian/qgis.xml but excluding already defined or proprietary types @@ -36,6 +36,9 @@ Source5: %{name}-mime.xml # Fix detection problem for GRASS libraries Patch0: %{name}-2.4.0-grass.patch +# https://github.com/qgis/QGIS/commit/1aff7335d004bc410eb61e1436ee7648716f9319 +Patch1: %{name}-2.8.1-arm.patch + # Some plug-ins need Pyspatialite (bundled) # The license is not totally clear, see: # http://code.google.com/p/pyspatialite/issues/detail?id=3 @@ -152,28 +155,31 @@ Requires: qscintilla-python %description python Python integration and plug-ins for QGIS. -%package mapserver -Summary: FCGI based OGC web map server +%package server +Summary: FCGI-based OGC web map server Group: Applications/Engineering Requires: %{name}%{?_isa} = %{version}-%{release} Requires: mod_fcgid +Provides: mapserver = %{version}-%{release} +Obsoletes: mapserver < 2.8.1-1 -%description mapserver +%description server This FastCGI OGC web map server implements OGC WMS 1.3.0 and 1.1.1. The services are prepared as regular projects in QGIS. They're rendered using the QGIS libraries. The server also supports SLD (Styled Layer Descriptor) for styling. Sample configurations for Httpd and Lighttpd are included. -Please refer to %{name}-mapserver-README.fedora for details! +Please refer to %{name}-server-README.fedora for details! %prep %setup -q %patch0 -p1 -b .grass~ +%patch1 -p1 -b .arm~ # Remove executable permissions from source code files find . \( -name "*.cpp" -o -name "*.h" \) -type f -perm /111 -execdir chmod -x {} \+ -# Readme file for QGIS mapserver configuration and Lighttpd example +# Readme file for QGIS server configuration and Lighttpd example install -pm0644 %{SOURCE4} . # Delete bundled libs @@ -218,6 +224,7 @@ gzip ChangeLog -D WITH_INTERNAL_QWTPOLAR:BOOL=FALSE \ -D WITH_INTERNAL_SIX:BOOL=FALSE \ -D WITH_PYSPATIALITE:BOOL=FALSE \ + -D WITH_SERVER:BOOL=TRUE \ -D WITH_TOUCH:BOOL=TRUE \ %{configure_with_spatialite} \ . @@ -259,13 +266,13 @@ install -pd %{buildroot}%{_datadir}/icons/hicolor/scalable/apps install -pd %{buildroot}%{_datadir}/icons/hicolor/128x128/mimetypes install -pm0644 \ %{buildroot}%{_datadir}/%{name}/images/icons/%{name}-icon.png \ - %{buildroot}%{_datadir}/pixmaps/%{name}-icon.png + %{buildroot}%{_datadir}/pixmaps/%{name}.png install -pm0644 \ images/icons/%{name}-icon-16x16.png \ - %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}-icon.png + %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png install -pm0644 \ images/icons/%{name}_icon.svg \ - %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}-icon.svg + %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg install -pm0644 \ %{buildroot}%{_datadir}/%{name}/images/icons/%{name}-mime-icon.png \ %{buildroot}%{_datadir}/icons/hicolor/128x128/mimetypes/application-x-qgis-layer-settings.png @@ -276,9 +283,9 @@ install -pm0644 \ # Install basic QGIS Mapserver configuration for Apache install -pd %{buildroot}%{_sysconfdir}/httpd/conf.d install -pm0644 %{SOURCE2} \ - %{buildroot}%{_sysconfdir}/httpd/conf.d/qgis-mapserver.conf + %{buildroot}%{_sysconfdir}/httpd/conf.d/qgis-server.conf -# See qgis-mapserver-README.fedora +# See qgis-server-README.fedora rm -f %{buildroot}%{_libexecdir}/%{name}/wms_metadata.xml rm -f %{buildroot}%{_libexecdir}/%{name}/admin.sld @@ -330,6 +337,7 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : # QGIS shows the following files in the GUI, including the license text %doc %{_datadir}/%{name}/doc/ %dir %{_datadir}/%{name}/i18n/ +%lang(zh-Hans) %{_datadir}/%{name}/i18n/%{name}_zh-Hans.qm %if 0%{?rhel} %lang(sr@latin) %{_datadir}/%{name}/i18n/%{name}_sr@latin.qm %endif @@ -337,6 +345,7 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %{_libdir}/lib%{name}_core.so.* %{_libdir}/lib%{name}_gui.so.* %{_libdir}/lib%{name}_networkanalysis.so.* +%{_libdir}/lib%{name}_server.so.* %{_libdir}/%{name}/ %{_qt4_prefix}/plugins/sqldrivers/libqsqlspatialite.so %{_bindir}/%{name} @@ -345,11 +354,11 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %{_mandir}/man1/qbrowser.1* %dir %{_datadir}/%{name}/ %{_datadir}/mime/packages/qgis.xml -%{_datadir}/pixmaps/%{name}-icon.png -%{_datadir}/icons/hicolor/16x16/apps/%{name}-icon.png +%{_datadir}/pixmaps/%{name}.png +%{_datadir}/icons/hicolor/16x16/apps/%{name}.png %{_datadir}/icons/hicolor/128x128/mimetypes/application-x-qgis-project.png %{_datadir}/icons/hicolor/128x128/mimetypes/application-x-qgis-layer-settings.png -%{_datadir}/icons/hicolor/scalable/apps/%{name}-icon.svg +%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %{_datadir}/applications/*%{name}.desktop %{_datadir}/applications/qbrowser.desktop %{_datadir}/%{name}/images/ @@ -381,13 +390,34 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %{python_sitearch}/%{name}/ %{python_sitearch}/PyQt4/uic/widget-plugins/ -%files mapserver -%doc src/mapserver/admin.sld src/mapserver/wms_metadata.xml %{name}-mapserver-README.fedora -%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-mapserver.conf +%files server +%doc src/server/admin.sld src/server/wms_metadata.xml %{name}-server-README.fedora +%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-server.conf %{_libexecdir}/%{name}/ %changelog +* Wed Jun 3 2015 Volker Fröhlich - 2.8.2-1 +- New upstream release + +* Mon Apr 20 2015 Rex Dieter 2.8.1-4 +- rebuild (qscintilla) + +* Wed Mar 11 2015 Devrim GÜNDÜZ - 2.8.1-3 +- Rebuild for Proj 4.9.1 + +* Mon Mar 9 2015 Volker Fröhlich - 2.8.1-2 +- Add upstream patch to fix the build on ARM + +* Sun Mar 8 2015 Volker Fröhlich - 2.8.1-1 +- New upstream release, remove included patch change +- Rename mapserver sub-package to server +- Add a new locale not found by find_lang +- Partly solve the icon file naming issue (BZ#1166977) + +* Thu Feb 19 2015 Dave Johansen 2.6.1-2 +- Rebuild for gcc 5.0 C++ ABI change + * Fri Jan 2 2015 Dave Johansen - 2.6.1-1 - Update to 2.6.1 diff --git a/sources b/sources index ec17be2..4269906 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e6d4233b5f8d4c7a77e289a9c794089f qgis-2.6.1.tar.bz2 +48a3eb71cdbaec523b8341726015d5db qgis-2.8.2.tar.bz2