kkofler pushed to avogadro (f21). "pull in upstream fix for qreal/arm issues"

notifications at fedoraproject.org notifications at fedoraproject.org
Sun Mar 29 03:27:24 UTC 2015


>From 7de3133e664cedf5c4b8431c7ff71916c2236db6 Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter at math.unl.edu>
Date: Mon, 22 Sep 2014 12:13:18 -0500
Subject: pull in upstream fix for qreal/arm issues


diff --git a/0029-Fix-compilation-on-ARM-where-qreal-can-be-defined-as.patch b/0029-Fix-compilation-on-ARM-where-qreal-can-be-defined-as.patch
new file mode 100644
index 0000000..cc45aa5
--- /dev/null
+++ b/0029-Fix-compilation-on-ARM-where-qreal-can-be-defined-as.patch
@@ -0,0 +1,221 @@
+From 6f1a111bab5798a4289187bdf747c3be4e176534 Mon Sep 17 00:00:00 2001
+From: Scott Tincman <sctincman at gmail.com>
+Date: Wed, 19 Mar 2014 14:38:21 -0400
+Subject: [PATCH 29/58] Fix compilation on ARM, where qreal can be defined as a
+ float
+
+Change-Id: I0121913aa03b3a449bfa45b9337bc4c5f586799b
+---
+ libavogadro/src/extensions/qtaim/qtaimcubature.cpp | 78 +++++++++++-----------
+ 1 file changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/libavogadro/src/extensions/qtaim/qtaimcubature.cpp b/libavogadro/src/extensions/qtaim/qtaimcubature.cpp
+index ce15190..439250f 100644
+--- a/libavogadro/src/extensions/qtaim/qtaimcubature.cpp
++++ b/libavogadro/src/extensions/qtaim/qtaimcubature.cpp
+@@ -1150,17 +1150,17 @@ QList<QVariant> QTAIMEvaluateProperty(QList<QVariant> variantList)
+   */
+   qint64 counter=0;
+   QString wfnFileName=variantList.at(counter).toString(); counter++;
+-  qreal x0=variantList.at(counter).toDouble(); counter++;
+-  qreal y0=variantList.at(counter).toDouble(); counter++;
+-  qreal z0=variantList.at(counter).toDouble(); counter++;
++  qreal x0=variantList.at(counter).toReal(); counter++;
++  qreal y0=variantList.at(counter).toReal(); counter++;
++  qreal z0=variantList.at(counter).toReal(); counter++;
+ 
+   qint64 nncp=variantList.at(counter).toLongLong(); counter++;
+   QList<QVector3D> ncpList;
+   for( qint64 n=0 ; n < nncp ; ++n )
+   {
+-    qreal x=variantList.at(counter).toDouble(); counter++;
+-    qreal y=variantList.at(counter).toDouble(); counter++;
+-    qreal z=variantList.at(counter).toDouble(); counter++;
++    qreal x=variantList.at(counter).toReal(); counter++;
++    qreal y=variantList.at(counter).toReal(); counter++;
++    qreal z=variantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1189,7 +1189,7 @@ QList<QVariant> QTAIMEvaluateProperty(QList<QVariant> variantList)
+ 
+   QList<QVariant> valueList;
+ 
+-  double initialElectronDensity=eval.electronDensity( Eigen::Vector3d(x0,y0,z0) );
++  qreal initialElectronDensity=eval.electronDensity( Matrix<qreal,3,1>(x0,y0,z0) );
+ 
+   // if less than some small value, then return zero for all integrands.
+   if( initialElectronDensity < 1.e-5 )
+@@ -1254,7 +1254,7 @@ QList<QVariant> QTAIMEvaluateProperty(QList<QVariant> variantList)
+       {
+         if( modeList.at(m) == 0 )
+         {
+-          valueList.append(eval.electronDensity( Eigen::Vector3d(x0,y0,z0) ));
++	    valueList.append(eval.electronDensity( Matrix<qreal,3,1>(x0,y0,z0) ));
+         }
+         else
+         {
+@@ -1292,9 +1292,9 @@ void property_v(unsigned int /* ndim */, unsigned int npts, const double *xyz, v
+   QList<QVector3D> ncpList;
+   for( qint64 i=0 ; i < nncp ; ++i )
+   {
+-    qreal x=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal y=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal z=paramVariantList.at(counter).toDouble(); counter++;
++    qreal x=paramVariantList.at(counter).toReal(); counter++;
++    qreal y=paramVariantList.at(counter).toReal(); counter++;
++    qreal z=paramVariantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1419,17 +1419,17 @@ QList<QVariant> QTAIMEvaluatePropertyRTP(QList<QVariant> variantList)
+   */
+   qint64 counter=0;
+   QString wfnFileName=variantList.at(counter).toString(); counter++;
+-  qreal r0=variantList.at(counter).toDouble(); counter++;
+-  qreal t0=variantList.at(counter).toDouble(); counter++;
+-  qreal p0=variantList.at(counter).toDouble(); counter++;
++  qreal r0=variantList.at(counter).toReal(); counter++;
++  qreal t0=variantList.at(counter).toReal(); counter++;
++  qreal p0=variantList.at(counter).toReal(); counter++;
+ 
+   qint64 nncp=variantList.at(counter).toLongLong(); counter++;
+   QList<QVector3D> ncpList;
+   for( qint64 n=0 ; n < nncp ; ++n )
+   {
+-    qreal x=variantList.at(counter).toDouble(); counter++;
+-    qreal y=variantList.at(counter).toDouble(); counter++;
+-    qreal z=variantList.at(counter).toDouble(); counter++;
++    qreal x=variantList.at(counter).toReal(); counter++;
++    qreal y=variantList.at(counter).toReal(); counter++;
++    qreal z=variantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1472,7 +1472,7 @@ QList<QVariant> QTAIMEvaluatePropertyRTP(QList<QVariant> variantList)
+ 
+   QList<QVariant> valueList;
+ 
+-  double initialElectronDensity=eval.electronDensity( Eigen::Vector3d(x0,y0,z0) );
++  qreal initialElectronDensity=eval.electronDensity( Matrix<qreal,3,1>(x0,y0,z0) );
+ 
+   // if less than some small value, then return zero for all integrands.
+   if( initialElectronDensity < 1.e-5 )
+@@ -1540,7 +1540,7 @@ QList<QVariant> QTAIMEvaluatePropertyRTP(QList<QVariant> variantList)
+         {
+           valueList.append(
+ 
+-              r0*r0*sin(t0)*eval.electronDensity( Eigen::Vector3d(x0,y0,z0) )
++              r0*r0*sin(t0)*eval.electronDensity( Matrix<qreal,3,1>(x0,y0,z0) )
+ 
+               );
+         }
+@@ -1580,9 +1580,9 @@ void property_v_rtp(unsigned int /* ndim */, unsigned int npts, const double *xy
+   QList<QVector3D> ncpList;
+   for( qint64 i=0 ; i < nncp ; ++i )
+   {
+-    qreal x=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal y=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal z=paramVariantList.at(counter).toDouble(); counter++;
++    qreal x=paramVariantList.at(counter).toReal(); counter++;
++    qreal y=paramVariantList.at(counter).toReal(); counter++;
++    qreal z=paramVariantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1691,16 +1691,16 @@ void property_r(unsigned int ndim, const double *xyz, void *param,
+   QString wfnFileName=paramVariantList.at(counter).toString(); counter++;
+ 
+   qreal r=xyz[0];
+-  qreal t=paramVariantList.at(counter).toDouble(); counter++;
+-  qreal p=paramVariantList.at(counter).toDouble(); counter++;
++  qreal t=paramVariantList.at(counter).toReal(); counter++;
++  qreal p=paramVariantList.at(counter).toReal(); counter++;
+ 
+   qint64 nncp=paramVariantList.at(counter).toLongLong(); counter++;
+   QList<QVector3D> ncpList;
+   for( qint64 i=0 ; i < nncp ; ++i )
+   {
+-    qreal x=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal y=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal z=paramVariantList.at(counter).toDouble(); counter++;
++    qreal x=paramVariantList.at(counter).toReal(); counter++;
++    qreal y=paramVariantList.at(counter).toReal(); counter++;
++    qreal z=paramVariantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1738,7 +1738,7 @@ void property_r(unsigned int ndim, const double *xyz, void *param,
+   {
+     if( mode==0 )
+     {
+-      fval[m]=r*r*eval.electronDensity( Eigen::Vector3d(x,y,z) );
++	fval[m]=r*r*eval.electronDensity( Matrix<qreal,3,1>(x,y,z) );
+     }
+   }
+ 
+@@ -1771,16 +1771,16 @@ QList<QVariant> QTAIMEvaluatePropertyTP(QList<QVariant> variantList)
+   */
+   qint64 counter=0;
+   QString wfnFileName=variantList.at(counter).toString(); counter++;
+-  qreal t=variantList.at(counter).toDouble(); counter++;
+-  qreal p=variantList.at(counter).toDouble(); counter++;
++  qreal t=variantList.at(counter).toReal(); counter++;
++  qreal p=variantList.at(counter).toReal(); counter++;
+ 
+   qint64 nncp=variantList.at(counter).toLongLong(); counter++;
+   QList<QVector3D> ncpList;
+   for( qint64 n=0 ; n < nncp ; ++n )
+   {
+-    qreal x=variantList.at(counter).toDouble(); counter++;
+-    qreal y=variantList.at(counter).toDouble(); counter++;
+-    qreal z=variantList.at(counter).toDouble(); counter++;
++    qreal x=variantList.at(counter).toReal(); counter++;
++    qreal y=variantList.at(counter).toReal(); counter++;
++    qreal z=variantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+@@ -1846,7 +1846,7 @@ QList<QVariant> QTAIMEvaluatePropertyTP(QList<QVariant> variantList)
+   qreal x=xyzl(0);
+   qreal y=xyzl(1);
+   qreal z=xyzl(2);
+-  qreal leftElectronDensity=eval.electronDensity( Eigen::Vector3d(x,y,z) );
++  qreal leftElectronDensity=eval.electronDensity( Matrix<qreal,3,1>(x,y,z) );
+ 
+   if( leftElectronDensity < 1.e-5 )
+   {
+@@ -1896,7 +1896,7 @@ QList<QVariant> QTAIMEvaluatePropertyTP(QList<QVariant> variantList)
+   x=xyzr(0);
+   y=xyzr(1);
+   z=xyzr(2);
+-  qreal rightElectronDensity=eval.electronDensity( Eigen::Vector3d(x,y,z) );
++  qreal rightElectronDensity=eval.electronDensity( Matrix<qreal,3,1>(x,y,z) );
+ 
+   if( rightElectronDensity < 1.e-5 )
+   {
+@@ -1959,7 +1959,7 @@ QList<QVariant> QTAIMEvaluatePropertyTP(QList<QVariant> variantList)
+     x=xyzm(0);
+     y=xyzm(1);
+     z=xyzm(2);
+-    qreal midpointElectronDensity=eval.electronDensity( Eigen::Vector3d(x,y,z) );
++    qreal midpointElectronDensity=eval.electronDensity( Matrix<qreal,3,1>(x,y,z) );
+ 
+     if( midpointElectronDensity < 1.e-5 )
+     {
+@@ -2092,9 +2092,9 @@ void property_v_tp(unsigned int /* ndim */, unsigned int npts, const double *xyz
+   QList<QVector3D> ncpList;
+   for( qint64 i=0 ; i < nncp ; ++i )
+   {
+-    qreal x=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal y=paramVariantList.at(counter).toDouble(); counter++;
+-    qreal z=paramVariantList.at(counter).toDouble(); counter++;
++    qreal x=paramVariantList.at(counter).toReal(); counter++;
++    qreal y=paramVariantList.at(counter).toReal(); counter++;
++    qreal z=paramVariantList.at(counter).toReal(); counter++;
+ 
+     ncpList.append(QVector3D(x,y,z));
+   }
+-- 
+1.9.3
+
diff --git a/avogadro.spec b/avogadro.spec
index ac21ec0..9a031d3 100644
--- a/avogadro.spec
+++ b/avogadro.spec
@@ -5,12 +5,14 @@
 
 Name:           avogadro
 Version:        1.1.1
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        An advanced molecular editor for chemical purposes
 
 License:        GPLv2
 URL:            http://avogadro.openmolecules.net/
 Source0:        http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
+
+## upstreamable patches
 # Fix qmake mkspecs installation directory
 Patch0:         avogadro-1.1.1-mkspecs-dir.patch
 # Remove -Wl,-s from the compiler flags, fixes -debuginfo (#700080)
@@ -18,9 +20,9 @@ Patch1:         avogadro-1.1.1-no-strip.patch
 # avogadro.pc missing eigen dependency
 Patch2:          avogadro-1.1.1-pkgconfig_eigen.patch
 
-# avogadro requires desktop opengl, and ftbfs due to eigen2/qreal issue in
-# libavogadro/src/extensions/qtaim/qtaimcubature.cpp
-ExcludeArch: %{arm}
+## upstream fixes
+# fix FTBFS on arm
+Patch3:          0029-Fix-compilation-on-ARM-where-qreal-can-be-defined-as.patch
 
 BuildRequires:  boost-devel >= 1.35
 BuildRequires:  cmake >= 2.6.0
@@ -28,6 +30,7 @@ BuildRequires:  desktop-file-utils
 BuildRequires:  docbook-utils
 BuildRequires:  numpy
 # can theoretically use eigen3, but currently ftbfs if it is found -- rex
+BuildConflicts: eigen3-devel
 BuildRequires:  pkgconfig(eigen2) >= 2.0.3
 BuildRequires:  pkgconfig(glew) >= 1.5.0
 BuildRequires:  pkgconfig(openbabel-2.0) >= 2.2.2
@@ -67,6 +70,7 @@ Avogadro libraries.
 %patch0 -p1 -b .mkspecs-dir
 %patch1 -p1 -b .no-strip
 %patch2 -p1 -b .pkgconfig_eigen2
+%patch3 -p1 -b .qreal
 
 
 %build
@@ -137,6 +141,9 @@ xvfb-run -a dbus-launch --exit-with-session make test ARGS="--output-on-failure"
 
 
 %changelog
+* Mon Sep 22 2014 Rex Dieter <rdieter at fedoraproject.org> 1.1.1-6
+- pull in upstream fix for qreal/arm issues
+
 * Fri Aug 15 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.1.1-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
 
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/avogadro.git/commit/?h=f21&id=7de3133e664cedf5c4b8431c7ff71916c2236db6


More information about the scm-commits mailing list