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 +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 QTAIMEvaluateProperty(QList 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 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 QTAIMEvaluateProperty(QList variantList) + + QList valueList; + +- double initialElectronDensity=eval.electronDensity( Eigen::Vector3d(x0,y0,z0) ); ++ qreal initialElectronDensity=eval.electronDensity( Matrix(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 QTAIMEvaluateProperty(QList variantList) + { + if( modeList.at(m) == 0 ) + { +- valueList.append(eval.electronDensity( Eigen::Vector3d(x0,y0,z0) )); ++ valueList.append(eval.electronDensity( Matrix(x0,y0,z0) )); + } + else + { +@@ -1292,9 +1292,9 @@ void property_v(unsigned int /* ndim */, unsigned int npts, const double *xyz, v + QList 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 QTAIMEvaluatePropertyRTP(QList 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 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 QTAIMEvaluatePropertyRTP(QList variantList) + + QList valueList; + +- double initialElectronDensity=eval.electronDensity( Eigen::Vector3d(x0,y0,z0) ); ++ qreal initialElectronDensity=eval.electronDensity( Matrix(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 QTAIMEvaluatePropertyRTP(QList variantList) + { + valueList.append( + +- r0*r0*sin(t0)*eval.electronDensity( Eigen::Vector3d(x0,y0,z0) ) ++ r0*r0*sin(t0)*eval.electronDensity( Matrix(x0,y0,z0) ) + + ); + } +@@ -1580,9 +1580,9 @@ void property_v_rtp(unsigned int /* ndim */, unsigned int npts, const double *xy + QList 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 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(x,y,z) ); + } + } + +@@ -1771,16 +1771,16 @@ QList QTAIMEvaluatePropertyTP(QList 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 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 QTAIMEvaluatePropertyTP(QList 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(x,y,z) ); + + if( leftElectronDensity < 1.e-5 ) + { +@@ -1896,7 +1896,7 @@ QList QTAIMEvaluatePropertyTP(QList variantList) + x=xyzr(0); + y=xyzr(1); + z=xyzr(2); +- qreal rightElectronDensity=eval.electronDensity( Eigen::Vector3d(x,y,z) ); ++ qreal rightElectronDensity=eval.electronDensity( Matrix(x,y,z) ); + + if( rightElectronDensity < 1.e-5 ) + { +@@ -1959,7 +1959,7 @@ QList QTAIMEvaluatePropertyTP(QList variantList) + x=xyzm(0); + y=xyzm(1); + z=xyzm(2); +- qreal midpointElectronDensity=eval.electronDensity( Eigen::Vector3d(x,y,z) ); ++ qreal midpointElectronDensity=eval.electronDensity( Matrix(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 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 1.1.1-6 +- pull in upstream fix for qreal/arm issues + * Fri Aug 15 2014 Fedora Release Engineering - 1.1.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild