[devel] Fwd: shelxle-1.0.513-alt1: Sisyphus/x86_64 test rebuild failed

Denis G. Samsonenko ogion на altlinux.org
Ср Янв 25 09:28:57 MSK 2012


День добрый!

Получил сообщение, что перестал собираться мой пакет shelxle:

...
g++ -c -pipe -fopenmp -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG
-DQT_WEBKIT_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB
-DQT_CORE_LIB -DQT_SHARED -I../../../../share/qt4/mkspecs/linux-g++
-I. -I../../../../include/qt4/QtCore
-I../../../../include/qt4/QtNetwork -I../../../../include/qt4/QtGui
-I../../../../include/qt4/QtOpenGL -I../../../../include/qt4/QtWebKit
-I../../../../include/qt4 -I. -I/usr/X11R6/include -I. -o molecule.o
molecule.cpp
molecule.cpp: In member function 'void Molecule::sphere(int)':
molecule.cpp:425:3: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:425:18: error: 'q' was not declared in this scope
molecule.cpp:425:36: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:426:33: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:432:27: error: 'GLU_LINE' was not declared in this scope
molecule.cpp:432:35: error: 'gluQuadricDrawStyle' was not declared in this scope
molecule.cpp:433:39: error: 'gluSphere' was not declared in this scope
molecule.cpp:434:44: error: 'gluSphere' was not declared in this scope
molecule.cpp:435:29: error: 'gluSphere' was not declared in this scope
molecule.cpp:439:27: error: 'GLU_FILL' was not declared in this scope
molecule.cpp:439:35: error: 'gluQuadricDrawStyle' was not declared in this scope
molecule.cpp:440:33: error: 'gluSphere' was not declared in this scope
molecule.cpp:443:21: error: 'gluDeleteQuadric' was not declared in this scope
molecule.cpp: In member function 'void Molecule::ellipse(int)':
molecule.cpp:490:5: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:490:20: error: 'q' was not declared in this scope
molecule.cpp:490:38: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:491:35: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:493:33: error: 'gluSphere' was not declared in this scope
molecule.cpp:494:23: error: 'gluDeleteQuadric' was not declared in this scope
molecule.cpp:502:5: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:502:20: error: 'q' was not declared in this scope
molecule.cpp:502:38: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:503:35: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:505:45: error: 'gluCylinder' was not declared in this scope
molecule.cpp:518:23: error: 'gluDeleteQuadric' was not declared in this scope
molecule.cpp: In member function 'void Molecule::bonds(Connection)':
molecule.cpp:2108:5: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:2108:20: error: 'q' was not declared in this scope
molecule.cpp:2108:38: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:2109:35: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:2110:32: error: 'gluQuadricTexture' was not declared in this scope
molecule.cpp:2132:104: error: 'gluCylinder' was not declared in this scope
molecule.cpp:2199:23: error: 'gluDeleteQuadric' was not declared in this scope
molecule.cpp: In member function 'QString
Molecule::h_bonds(Connection, CEnvironment)':
molecule.cpp:2296:3: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:2296:18: error: 'q' was not declared in this scope
molecule.cpp:2296:36: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:2297:33: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:2300:30: error: 'gluQuadricTexture' was not declared in this scope
molecule.cpp:2301:80: error: 'gluCylinder' was not declared in this scope
molecule.cpp:2303:27: error: 'gluDeleteQuadric' was not declared in this scope
molecule.cpp: In member function 'void Molecule::h_bonds2(Connection,
CEnvironment)':
molecule.cpp:2399:13: error: 'GLUquadricObj' was not declared in this scope
molecule.cpp:2399:28: error: 'q' was not declared in this scope
molecule.cpp:2399:46: error: 'gluNewQuadric' was not declared in this scope
molecule.cpp:2400:43: error: 'gluQuadricNormals' was not declared in this scope
molecule.cpp:2403:40: error: 'gluQuadricTexture' was not declared in this scope
molecule.cpp:2404:90: error: 'gluCylinder' was not declared in this scope
molecule.cpp:2406:31: error: 'gluDeleteQuadric' was not declared in this scope
make: *** [molecule.o] Error 1
make: Leaving directory `/usr/src/RPM/BUILD/shelxle-1.0.513'
error: Bad exit status from /usr/src/tmp/rpm-tmp.6171 (%build)
...

Интересно, что на p6 у меня в хашере собирается нормально, на Сизифе
до недавнего времени тоже собирался нормально.

Из моих разбирательств я понял, что он перестал линковаться при сборке
в Сизиф с libGLU. После многочисленных экспериментов сделал такой
патч:

--- shelxle-1.0.519/molecule.h.orig	2012-01-20 09:00:03.000000000 +0700
+++ shelxle-1.0.519/molecule.h	2012-01-25 09:43:01.552895227 +0700
@@ -18,6 +18,7 @@
 ****************************************************************************/
 #ifndef MOLECULE_H
 #define MOLECULE_H 1
+#include <GL/glu.h>
 #include <math.h>
 #include <QString>
 #include <QStringList>
--- shelxle-1.0.519/shelXle.pro.orig	2011-11-29 09:00:01.000000000 +0700
+++ shelxle-1.0.519/shelXle.pro	2012-01-25 10:25:44.184808911 +0700
@@ -26,6 +26,8 @@ ICON = macshelx.icns
 }
 DEPENDPATH += .
 INCLUDEPATH += .
+CONFIG += link_pkgconfig
+PKGCONFIG += glu
 QT += opengl
 QT += network
 QT += webkit


После его применения сборка в Сизиф стала проходить, и я залил новую
версию (1.0.519).

Теперь у меня возник вопрос: почему перестала проходить сборка пакета,
ранее собиравшегося без проблем (и сейчас собирающегося без изменений
в окружении p6), и правильное ли я нашёл решение?

Я слабо ориентируюсь в C++, Qt и qmake, а посему хотел бы узнать
причины поломки и верность предложенного мной решения.

-- 
Всего доброго,

Денис.


Подробная информация о списке рассылки Devel