Compiling Doomsday 1.11.0 on RHEL 6

edited 2013 Aug 5 in Technical Support
Hi!

I build doomsday and package it for RHEL 6 (and CentOS, Scientific Linux, etc.). However, the new 1.11 version seems to require version 4.7 of Qt, which is not available in standard RHEL/CentOS repos. The error is this:
...
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_REENTRANT -Wall -W -Wextra -pedantic -Wno-long-long -fPIC -DNDEBUG -DDENG_STABLE -DUNIX -DDENG_BASE_DIR="\"/usr/share/doomsday/\"" -DDENG_LIBRARY_DIR="\"/usr/lib/doomsday/\"" -DDENG_NO_FIXED_ASM -DDENG_NO_RANGECHECKING -DLIBDENG2_RELEASE_LABEL=\"Dev\" -DLIBDENG2_MAJOR_VERSION=2 -DLIBDENG2_MINOR_VERSION=0 -DLIBDENG2_PATCHLEVEL=0 -DLIBDENG2_VERSION=\"2.0.0\" -D__DENG2__ -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I../../libdeng2 -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include -I../../libdeng2/include -I/home/gpulido/packages/rpm/BUILD/doomsday-1.11.0/doomsday/temp/libdeng2/. -I../../libdeng2 -I. -o textvalue.o ../../libdeng2/src/data/textvalue.cpp
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_REENTRANT -Wall -W -Wextra -pedantic -Wno-long-long -fPIC -DNDEBUG -DDENG_STABLE -DUNIX -DDENG_BASE_DIR="\"/usr/share/doomsday/\"" -DDENG_LIBRARY_DIR="\"/usr/lib/doomsday/\"" -DDENG_NO_FIXED_ASM -DDENG_NO_RANGECHECKING -DLIBDENG2_RELEASE_LABEL=\"Dev\" -DLIBDENG2_MAJOR_VERSION=2 -DLIBDENG2_MINOR_VERSION=0 -DLIBDENG2_PATCHLEVEL=0 -DLIBDENG2_VERSION=\"2.0.0\" -D__DENG2__ -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I../../libdeng2 -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include -I../../libdeng2/include -I/home/gpulido/packages/rpm/BUILD/doomsday-1.11.0/doomsday/temp/libdeng2/. -I../../libdeng2 -I. -o time.o ../../libdeng2/src/data/time.cpp
../../libdeng2/src/data/time.cpp: In member function 'de::Time::Delta de::Time::Instance::delta(const de::Time::Instance&) const':
../../libdeng2/src/data/time.cpp:206: error: 'const class QDateTime' has no member named 'msecsTo'
make[1]: *** [time.o] Error 1
make[1]: Leaving directory `/home/gpulido/packages/rpm/BUILD/doomsday-1.11.0/doomsday/temp/libdeng2'
make: *** [sub-libdeng2-make_default-ordered] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.PxlK6w (%build)

Is there an easy way to patch this so it can be built again like 1.10 versions?

Thanks!!

Comments

  • You could try replacing time.cpp line 206 with:
    #ifdef DENG2_QT_4_7_OR_NEWER
                return earlier.dateTime.msecsTo(dateTime) / 1000.0;
    #else
                return earlier.dateTime.time().msecsTo(dateTime.time()) / 1000.0;
    #endif
    
    (Note that the above code behaves incorrectly if the time span is too large, as QTime can only represent a 24h interval. This is part of why this particular code was dropped earlier.)

    However, you might still run into other places where Qt 4.7 is needed. I haven't tried compiling with Qt 4.6 in quite a while.
Sign In or Register to comment.