Package: supercollider
Version: 1:3.5.3~repack-2
severity: serious
tags: patch

Your package failed to build on armel and armhf
[ 78%] Building CXX object 
lang/CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o
cd "/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/obj-arm-linux-gnueabihf/lang" && /usr/bin/g++   -DSC_LINUX -DSC_DATA_DIR=\"/usr/share/SuperCollider\" -DYYSTACK_USE_ALLOCA 
-DHAVE_LID -DHAVE_WII -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DSC_QT -DQT_COLLIDER_EXPORTING -DQT_NO_KEYWORDS -DBUILDING_SUPERCOLLIDER -DHAVE_READLINE -DHAVE_ALSA=1 -DQT_NO_DEBUG -g -O2 -fstack-protector --param=ssp-buffer-size=4 
-Wformat -Werror=format-security -Wall -D_FORTIFY_SOURCE=2 -O2 -g -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/common" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/lang" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/plugin_interface" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/server" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/boost_lockfree" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/threadpool" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/yaml-cpp-0.3.0/include" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/external_libraries/TLSF-2.4.6/src" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/lang/LangSource/Bison" -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/SCDoc" 
-I/usr/include/qt4 -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/include/QtCollider" 
-I"/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/lang/X11_INCLUDE_DIR"    -fschedule-insns2 -fomit-frame-pointer -Wreturn-type -fvisibility=hidden -pthread -o 
CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o -c "/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp"
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:
 In member function 'virtual void QcMultiSlider::mousePressEvent(QMouseEvent*)':
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:187:47:
 error: no matching function for call to 'QcMultiSlider::valueRect(int, 
double&)'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:187:47:
 note: candidate is:
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7:
 note: QRect QcMultiSlider::valueRect(int, qreal&)
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7:
 note:   no known conversion for argument 2 from 'double' to 'qreal& {aka 
float&}'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:
 In member function 'virtual void QcMultiSlider::mouseMoveEvent(QMouseEvent*)':
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:231:45:
 error: no matching function for call to 'QcMultiSlider::valueRect(int, 
double&)'
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:231:45:
 note: candidate is:
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7:
 note: QRect QcMultiSlider::valueRect(int, qreal&)
/build/buildd-supercollider_3.5.3~repack-2-armhf-CT3rf6/supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp:152:7:
 note:   no known conversion for argument 2 from 'double' to 'qreal& {aka 
float&}'
make[3]: *** 
[lang/CMakeFiles/libsclang.dir/__/QtCollider/widgets/QcMultiSlider.cpp.o] Error 
1


On most architectures qreal is defined as double but on arm architectures
it is defined as float. Assignments between qreal and double are ok because
assignments between float and double are ok but there can be issues with
pointers, reference parameters, templates and overloaded functions if proper distinctions are not made. In this particular case the issue is a reference parameter.

The fix is simple enough, just a couple of variable definitions that need
changing.

I've updated arm-qreal-is-float.patch to fix this issue.



From: Felipe Sateler <fsate...@debian.org>
Date: Mon, 9 Jul 2012 18:57:51 -0400
Subject: [PATCH] QcMultiSlider::valueRect takes in a qreal, not a double

Usually qreal is double (which is why it works), but on ARM systems qreal
is float instead.
This causes sc to fail to build on ARM systems.

---

There is a similar problem with some reference parameters in QcMultislider
.cpp which I have added the fix for to this patch -- Peter Green

---
 QtCollider/widgets/QcMultiSlider.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.h
===================================================================
--- supercollider-3.5.3~repack.orig/QtCollider/widgets/QcMultiSlider.h	2012-06-23 21:38:01.000000000 +0000
+++ supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.h	2012-07-21 21:18:44.000000000 +0000
@@ -109,7 +109,7 @@
     void setStartIndex( int i ) { startIndex = qBound(0, i, _values.count()-1); update(); }
 
     QRect contentsRect();
-    QRect valueRect( int count, double & spacing );
+    QRect valueRect( int count, qreal & spacing );
     inline float valueFromPos( float pos, float range );
     inline void setValue( int index, double value );
     double rounded ( double value );
Index: supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp
===================================================================
--- supercollider-3.5.3~repack.orig/QtCollider/widgets/QcMultiSlider.cpp	2012-06-23 21:38:01.000000000 +0000
+++ supercollider-3.5.3~repack/QtCollider/widgets/QcMultiSlider.cpp	2012-07-21 23:21:44.000000000 +0000
@@ -182,7 +182,7 @@
   if( !c ) return;
 
   bool horiz = ort == Qt::Horizontal;
-  double spacing;
+  qreal spacing;
 
   QRect r( valueRect( c - startIndex, spacing ) );
 
@@ -226,7 +226,7 @@
     return;
   }
 
-  double xStep;
+  qreal xStep;
 
   QRect r( valueRect( c - startIndex, xStep ) );
 
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to