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