I fixed the qMax issue I mentioned in the original bug report and a couple of similar qMin issues.

However I have now run into an issue I have no idea how to tackle and google isn't helping much.

sip: /qgis-2.0.1/python/core/qgsclipper.sip:44: QgsClipper::trimFeature() unsupported function argument type - provide %MethodCode and a C++ signature

So i'm going to have to punt on this bug here until someone more knowlageable comes along.

I also noticed that the previous upload had already introduced an arm related patch and took a look at it. It looked obviously broken and looking closer confirmed this. It was broken in two ways, firstly one of Konstantinos's new functions was under an andriod ifdef. Secondly his new functions converted reference parameters on input but not on output. I fixed both of these but have not tested the fixes.

A debdiff of progress so-far is attatched.
diff -Nru qgis-2.0.1/debian/changelog qgis-2.0.1/debian/changelog
--- qgis-2.0.1/debian/changelog 2014-01-18 07:40:41.000000000 +0000
+++ qgis-2.0.1/debian/changelog 2014-02-06 08:24:08.000000000 +0000
@@ -1,3 +1,12 @@
+qgis (2.0.1-1.1) UNRELEASED; urgency=medium
+
+  * Patch for BTS, no intent to NMU
+  * Fix qreal vs double issues with qmin and qmax
+  * Fix broken arm Patch by Konstantinos Margaritis
+  * Disable python stuff on arm* due to qgis error
+
+ -- Peter Michael Green <plugw...@debian.org>  Thu, 06 Feb 2014 06:30:03 +0000
+
 qgis (2.0.1-1) unstable; urgency=low
 
   [ Jürgen E. Fischer ]
diff -Nru qgis-2.0.1/debian/patches/fix-qreal-vs-double.patch 
qgis-2.0.1/debian/patches/fix-qreal-vs-double.patch
--- qgis-2.0.1/debian/patches/fix-qreal-vs-double.patch 1970-01-01 
00:00:00.000000000 +0000
+++ qgis-2.0.1/debian/patches/fix-qreal-vs-double.patch 2014-02-06 
07:55:03.000000000 +0000
@@ -0,0 +1,48 @@
+Description: Fix qreal vs double.
+ In qt4 on arm architectures qreal is defined as float while on other
+ architectures it is defined as double. This can cause problems if qreal
+ and double are carelessly mixed.
+
+ In this particular case the problem is that qMin/qMax are templates defined
+ to take two parameters of the same type. If two different types are passed
+ in then C++ can't resolve what type the template parameter should be and
+ bails out. The fix is simple, typecast one of the parameters so they
+ match.
+
+Author: Peter Michael Green <plugw...@debian.org>
+
+Index: qgis-2.0.1/src/app/gps/qwtpolar-1.0/qwt_polar_curve.cpp
+===================================================================
+--- qgis-2.0.1.orig/src/app/gps/qwtpolar-1.0/qwt_polar_curve.cpp       
2014-02-06 06:58:28.000000000 +0000
++++ qgis-2.0.1/src/app/gps/qwtpolar-1.0/qwt_polar_curve.cpp    2014-02-06 
06:58:28.000000000 +0000
+@@ -433,7 +433,7 @@
+ 
+     if ( !clipRect.isEmpty() )
+     {
+-        double off = qCeil( qMax( 1.0, painter->pen().widthF() ) );
++        double off = qCeil( qMax((qreal)1.0,painter->pen().widthF() ) );
+         clipRect = clipRect.toRect().adjusted( -off, -off, off, off );
+         polyline = QwtClipper::clipPolygonF( clipRect, polyline );
+     }
+Index: qgis-2.0.1/src/app/gps/qwtpolar-1.0/qwt_polar_layout.cpp
+===================================================================
+--- qgis-2.0.1.orig/src/app/gps/qwtpolar-1.0/qwt_polar_layout.cpp      
2013-09-10 23:06:52.000000000 +0000
++++ qgis-2.0.1/src/app/gps/qwtpolar-1.0/qwt_polar_layout.cpp   2014-02-06 
07:54:01.000000000 +0000
+@@ -278,7 +278,7 @@
+         // We don't allow vertical legends to take more than
+         // half of the available space.
+ 
+-        dim = qMin( hint.width(), rect.width() * d_data->legendRatio );
++        dim = qMin( hint.width(), (qreal)(rect.width() * d_data->legendRatio) 
);
+ 
+         if ( !( options & IgnoreScrollbars ) )
+         {
+@@ -293,7 +293,7 @@
+     }
+     else
+     {
+-        dim = qMin( hint.height(), rect.height() * d_data->legendRatio );
++        dim = qMin( hint.height(), (qreal)(rect.height() * 
d_data->legendRatio) );
+         dim = qMax( dim, d_data->layoutData.legend.hScrollBarHeight );
+     }
+ 
diff -Nru qgis-2.0.1/debian/patches/qgis_arm.patch 
qgis-2.0.1/debian/patches/qgis_arm.patch
--- qgis-2.0.1/debian/patches/qgis_arm.patch    2014-01-18 07:40:41.000000000 
+0000
+++ qgis-2.0.1/debian/patches/qgis_arm.patch    2014-02-06 08:13:23.000000000 
+0000
@@ -1,10 +1,15 @@
 Description: On armel/armhf qreal is typedef'ed to float not double.
+ This patch adds qreal versions of some functions on arm. It was originally 
+ writen by Konstantinos Margaritis and later fixed by Peter Michael Green
 Author: Konstantinos Margaritis <konstantinos.margari...@freevec.org>
+Author: Peter Michael Green <plugw...@debian.org>
 Bug-Debian: http://bugs.debian.org/691333
-Last-Update: 2014-01-17
---- a/src/core/qgscoordinatetransform.h
-+++ b/src/core/qgscoordinatetransform.h
-@@ -154,6 +154,9 @@ class CORE_EXPORT QgsCoordinateTransform
+Last-Update: 2014-02-06
+Index: qgis-2.0.1/src/core/qgscoordinatetransform.h
+===================================================================
+--- qgis-2.0.1.orig/src/core/qgscoordinatetransform.h  2013-09-10 
23:06:52.000000000 +0000
++++ qgis-2.0.1/src/core/qgscoordinatetransform.h       2014-02-06 
06:17:14.000000000 +0000
+@@ -154,6 +154,9 @@
      // and y variables in place. The second one works with good old-fashioned
      // C style arrays.
      void transformInPlace( double& x, double& y, double &z, 
TransformDirection direction = ForwardTransform ) const;
@@ -14,9 +19,11 @@
  
      //! @note not available in python bindings
      void transformInPlace( QVector<double>& x, QVector<double>& y, 
QVector<double>& z,
---- a/src/core/qgsmaptopixel.h
-+++ b/src/core/qgsmaptopixel.h
-@@ -66,6 +66,9 @@ class CORE_EXPORT QgsMapToPixel
+Index: qgis-2.0.1/src/core/qgsmaptopixel.h
+===================================================================
+--- qgis-2.0.1.orig/src/core/qgsmaptopixel.h   2013-09-10 23:06:52.000000000 
+0000
++++ qgis-2.0.1/src/core/qgsmaptopixel.h        2014-02-06 06:17:14.000000000 
+0000
+@@ -66,6 +66,9 @@
         given coordinates in place. Intended as a fast way to do the
         transform. */
      void transformInPlace( double& x, double& y ) const;
@@ -26,31 +33,35 @@
  
      /* Transform device coordinates to map coordinates. Modifies the
         given coordinates in place. Intended as a fast way to do the
---- a/src/core/qgsmaptopixel.cpp
-+++ b/src/core/qgsmaptopixel.cpp
-@@ -138,6 +138,14 @@ void QgsMapToPixel::transformInPlace( do
+Index: qgis-2.0.1/src/core/qgsmaptopixel.cpp
+===================================================================
+--- qgis-2.0.1.orig/src/core/qgsmaptopixel.cpp 2013-09-10 23:06:52.000000000 
+0000
++++ qgis-2.0.1/src/core/qgsmaptopixel.cpp      2014-02-06 08:04:26.000000000 
+0000
+@@ -138,6 +138,14 @@
    y = yMax - ( y - yMin ) / mMapUnitsPerPixel;
  }
  
 +#ifdef QT_ARCH_ARM
 +void QgsMapToPixel::transformInPlace( qreal& x, qreal& y ) const
 +{
-+  double xd = (double) x, yd = (double) y;
-+  transformInPlace(xd, yd);
++  x = ( x - xMin ) / mMapUnitsPerPixel;
++  y = yMax - ( y - yMin ) / mMapUnitsPerPixel;
 +}
 +#endif
 +
  void QgsMapToPixel::transformInPlace( QVector<double>& x,
                                        QVector<double>& y ) const
  {
-@@ -161,3 +169,4 @@ void QgsMapToPixel::transformInPlace( QV
+@@ -161,3 +169,4 @@
      transformInPlace( x[i], y[i] );
  }
  #endif
 +
---- a/src/core/qgscoordinatetransform.cpp
-+++ b/src/core/qgscoordinatetransform.cpp
-@@ -416,6 +416,15 @@ void QgsCoordinateTransform::transformIn
+Index: qgis-2.0.1/src/core/qgscoordinatetransform.cpp
+===================================================================
+--- qgis-2.0.1.orig/src/core/qgscoordinatetransform.cpp        2013-09-10 
23:06:52.000000000 +0000
++++ qgis-2.0.1/src/core/qgscoordinatetransform.cpp     2014-02-06 
08:08:46.000000000 +0000
+@@ -388,6 +388,17 @@
    }
  }
  
@@ -60,9 +71,11 @@
 +{
 +  double xd = (double) x, yd = (double) y;
 +  transformInPlace(xd, yd, z, direction);
++  x=xd;
++  y=yd;
 +}
 +#endif
 +
- void QgsCoordinateTransform::transformInPlace(
-   QVector<float>& x, QVector<float>& y, QVector<float>& z,
-   TransformDirection direction ) const
+ #ifdef ANDROID
+ void QgsCoordinateTransform::transformInPlace( float& x, float& y, float& z,
+     TransformDirection direction ) const
diff -Nru qgis-2.0.1/debian/patches/series qgis-2.0.1/debian/patches/series
--- qgis-2.0.1/debian/patches/series    2014-01-18 07:40:41.000000000 +0000
+++ qgis-2.0.1/debian/patches/series    2014-02-06 06:58:28.000000000 +0000
@@ -26,3 +26,4 @@
 python-env.patch
 wms-c-don-t-crash-if-tile-matrix-set-isn-t-available.patch
 use-local-icon.patch
+fix-qreal-vs-double.patch
_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to