Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#12399 closed Bug Report - General (Fixed)

Cannot build mythtv qjson master with qt-5.4

Reported by: yiannividalis@… Owned by: Stuart Auchterlonie
Priority: major Milestone: 0.28
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Hi, after the announcement re minimum qt version 5.2, I installed the qt packages for openSuSE (tumbleweed, it's become a rolling release) which installed version 5.4. That's on my laptop, which I can afford to break MythTV without worring about WAF and CAF!

I'm unable to build mythtv since.

yianni@eagle1:~/mythtv-git/mythtv> make
sh version.sh /home/yianni/mythtv-git/mythtv
make -C external
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/external'
make -C FFmpeg all
(cd qjson ; qmake-qt5 -o Makefile)
[ -f qjson/include/QJson ] && \
  (cd qjson/include ; rm -f QJson ; ln -s -f ../src QJson)
Makefile:47: recipe for target 'qjson-all' failed
make[1]: [qjson-all] Error 1 (ignored)
make -C qjson all
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/qjson'
cd src/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythtv/external/qjson/src/src.pro -o Makefile ) && make -f Makefile all
make[3]: Entering directory '/home/yianni/mythtv-git/mythtv/external/qjson/src'
ccache g++ -c -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -march=pentium-m -DNDEBUG -fomit-frame-pointer -fPIC -DQT_DISABLE_DEPRECATED_BEFORE -msse -pthread -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -fvisibility-inlines-hidden -Wmissing-declarations -Wno-switch -Woverloaded-virtual -funit-at-a-time -D_REENTRANT -fPIC -DMMX -Di386 -D_GNU_SOURCE -DQT_CORE_LIB -I/usr/include -I/usr/lib/qt5/mkspecs/linux-g++ -I. -isystem /usr/include -I/usr -isystem /usr/include/libxml2 -I../include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -I. -o moc_parserrunnable.o moc_parserrunnable.cpp
moc_parserrunnable.cpp:15:2: error: #error "This file was generated using the moc from 5.4.0. It"
 #error "This file was generated using the moc from 5.4.0. It"
  ^
moc_parserrunnable.cpp:16:2: error: #error "cannot be used with the include files from this version of Qt."
 #error "cannot be used with the include files from this version of Qt."
  ^
moc_parserrunnable.cpp:17:2: error: #error "(The moc has changed too much.)"
 #error "(The moc has changed too much.)"
  ^
moc_parserrunnable.cpp:22:5: error: ‘QByteArrayData’ does not name a type
     QByteArrayData data[6];
     ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:32:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(0, 0, 21), // "QJson::ParserRunnable"
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:32:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(0, 0, 21), // "QJson::ParserRunnable"
 ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:33:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(1, 22, 15), // "parsingFinished"
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:33:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(1, 22, 15), // "parsingFinished"
 ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:34:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(2, 38, 0), // ""
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:34:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(2, 38, 0), // ""
 ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:35:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(3, 39, 4), // "json"
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:35:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(3, 39, 4), // "json"
 ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:36:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(4, 44, 2), // "ok"
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:36:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(4, 44, 2), // "ok"
 ^
moc_parserrunnable.cpp:28:24: error: ‘QByteArrayData’ was not declared in this scope
         - idx * sizeof(QByteArrayData)) \
                        ^
moc_parserrunnable.cpp:37:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(5, 47, 9) // "error_msg"
 ^
moc_parserrunnable.cpp:29:5: error: ‘Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET’ was not declared in this scope
     )
     ^
moc_parserrunnable.cpp:37:1: note: in expansion of macro ‘QT_MOC_LITERAL’
 QT_MOC_LITERAL(5, 47, 9) // "error_msg"
 ^
moc_parserrunnable.cpp: In static member function ‘static void QJson::ParserRunnable::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
moc_parserrunnable.cpp:75:22: error: ‘IndexOfMethod’ is not a member of ‘QMetaObject’
     } else if (_c == QMetaObject::IndexOfMethod) {
                      ^
moc_parserrunnable.cpp: At global scope:
moc_parserrunnable.cpp:88:76: error: ‘const struct qt_meta_stringdata_QJson__ParserRunnable_t’ has no member named ‘data’
     { &QObject::staticMetaObject, qt_meta_stringdata_QJson__ParserRunnable.data,
                                                                            ^
moc_parserrunnable.cpp:89:64: error: ‘Q_NULLPTR’ was not declared in this scope
       qt_meta_data_QJson__ParserRunnable,  qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
                                                                ^
moc_parserrunnable.cpp:89:75: error: ‘Q_NULLPTR’ was not declared in this scope
       qt_meta_data_QJson__ParserRunnable,  qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
                                                                           ^
moc_parserrunnable.cpp: In member function ‘virtual const QMetaObject* QJson::ParserRunnable::metaObject() const’:
moc_parserrunnable.cpp:95:57: error: ‘class QObjectData’ has no member named ‘dynamicMetaObject’
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                                                         ^
moc_parserrunnable.cpp: In member function ‘virtual void* QJson::ParserRunnable::qt_metacast(const char*)’:
moc_parserrunnable.cpp:100:26: error: ‘Q_NULLPTR’ was not declared in this scope
     if (!_clname) return Q_NULLPTR;
                          ^
moc_parserrunnable.cpp: In member function ‘virtual int QJson::ParserRunnable::qt_metacall(QMetaObject::Call, int, void**)’:
moc_parserrunnable.cpp:117:22: error: ‘RegisterMethodArgumentMetaType’ is not a member of ‘QMetaObject’
     } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
                      ^
moc_parserrunnable.cpp: In member function ‘void QJson::ParserRunnable::parsingFinished(const QVariant&, bool, const QString&)’:
moc_parserrunnable.cpp:128:20: error: ‘Q_NULLPTR’ was not declared in this scope
     void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
                    ^
moc_parserrunnable.cpp: In member function ‘virtual const QMetaObject* QJson::ParserRunnable::metaObject() const’:
moc_parserrunnable.cpp:96:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
Makefile:421: recipe for target 'moc_parserrunnable.o' failed
make[3]: *** [moc_parserrunnable.o] Error 1
make[3]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/qjson/src'
Makefile:45: recipe for target 'sub-src-all' failed
make[2]: *** [sub-src-all] Error 2
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/qjson'
Makefile:47: recipe for target 'qjson-all' failed
make[1]: *** [qjson-all] Error 2
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/external'
Makefile:67: recipe for target 'external' failed
make: *** [external] Error 2

mythtv is at commit 39dd1ee

qt5 packages:
yianni@eagle1:~/mythtv-git/mythtv> rpm -qa | grep -i qt5
libQt5Widgets5-5.4.0-5.1.i586
libQt5Network5-5.4.0-5.1.i586
libQt5Concurrent-devel-5.4.0-5.1.i586
libQt5Sql5-5.4.0-5.1.i586
libQt5PrintSupport-devel-5.4.0-5.1.i586
libQt5Core5-5.4.0-5.1.i586
libQt5Xml-devel-5.4.0-5.1.i586
libQt5Network-devel-5.4.0-5.1.i586
libQt5Test5-5.4.0-5.1.i586
libQt5Sql-devel-5.4.0-5.1.i586
libQt5OpenGL-devel-5.4.0-5.1.i586
libQt5Concurrent5-5.4.0-5.1.i586
libQt5Sql5-mysql-5.4.0-5.1.i586
libQt5DBus-devel-5.4.0-5.1.i586
libqt5-qtbase-common-devel-5.4.0-5.1.i586
libQt5Gui-devel-5.4.0-5.1.i586
libQt5X11Extras5-5.4.0-1.1.i586
libQt5OpenGL5-5.4.0-5.1.i586
libQt5DBus5-5.4.0-5.1.i586
libQt5Gui5-5.4.0-5.1.i586
libQt5Core-devel-5.4.0-5.1.i586
libQt5Widgets-devel-5.4.0-5.1.i586
libqt5-qtbase-doc-5.4.0-5.1.i586
libqt5-qtimageformats-5.4.0-1.1.i586
libQt5Test-devel-5.4.0-5.1.i586
libqt5-qtbase-platformtheme-gtk2-5.4.0-5.1.i586
libQt5PrintSupport5-5.4.0-5.1.i586
libQt5PlatformHeaders-devel-5.4.0-5.1.i586
libQt5Xml5-5.4.0-5.1.i586
libqt5-qtbase-devel-5.4.0-5.1.i586

I know Stuart's announcement mentions 5.2 as the min version but could this be fixed for 5.4 as well? I wouldn't like to change the repos for opensuse and possibly crash my KDE.

Thanks and best regards,

Yianni.

Change History (16)

comment:1 Changed 4 years ago by stuartm

Did you perform a distclean before building against QT5? We have other people building against 5.4 without any issue.

QJson will be going away in the next week as it's not required with QT5 anyway, but there shouldn't be any issues with building it.

comment:2 Changed 4 years ago by yiannividalis@…

I actually removed the whole "mythtv" folder and performed a "git reset --hard" which I think is better?

comment:3 Changed 4 years ago by yiannividalis@…

Maybe my configure options are relevant?

yianni@eagle1:~/mythtv-git/mythtv> ./configure --previous
Options:     --prefix=/usr --enable-proc-opt --enable-audio-alsa --enable-dvb --enable-nonfree --disable-hdhomerun --disable-joystick-menu --enable-opengl-video --enable-libfftw3 --disable-mythlogserver
# Basic Settings
Compile type              profile
Compiler cache            yes
DistCC                    no
qmake                     /usr/bin/qmake-qt5
install prefix            /usr
runtime prefix            /usr
CPU                       x86 x86_32 (model name        : Intel(R) Core(TM) Duo CPU      T2450  @ 2.00GHz)
yasm                      yes
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AVX enabled               yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes

# Input Support
Joystick menu             no
lirc support              yes
libCEC device support     no [/usr/include]
Video4Linux support       yes
ivtv support              yes
HD-PVR support            yes
FireWire support          no
DVB support               yes [/usr/include]
DVB-S2 support            yes
HDHomeRun support         no
Ceton support             yes
ASI support               no

# Sound Output Support
PulseAudio support        yes
OSS support               yes
ALSA support              yes
JACK support              default
libfftw3 support          yes

# Video Output Support
x11 support               yes
xrandr support            yes
xv support                yes
VDPAU support             no
VAAPI support             no
CrystalHD support         no
OpenGL video              yes
MHEG support              yes
libass subtitle support   no

# Misc Features
multi threaded libavcodec yes
libxml2 support           yes [/usr/include/libxml2]
libdns_sd (Bonjour)       no
libcrypto                 yes
Frontend                  yes
Backend                   yes
OpenGL ES 2.0             no
mythlogserver             no

# Bindings
bindings_perl             yes
bindings_python           yes
bindings_php              yes

# External Codec Options
mp3lame                   no
faac                      no
xvid                      no
x264                      no
vpx                       no
SDL                       no

Creating libs/libmythbase/mythconfig.h and libs/libmythbase/mythconfig.mak

WARNING: When using --enable-proc-opt you must include the
         output of ./configure along with any bug report.

libs/libmythbase/mythconfig.h is unchanged
libs/libmythbase/mythconfig.mak is unchanged
external/FFmpeg/config.asm is unchanged
external/FFmpeg/libavutil/avconfig.h is unchanged
Configuring qjson...
Configuring libmythbluray...
Configuring libmythdvdnav...
Configuring libsamplerate...
Configuring minilzo...
Configuring libmythsoundtouch...
yianni@eagle1:~/mythtv-git/mythtv>

comment:4 Changed 4 years ago by yiannividalis@…

make distcleans actually stops with an error:

yianni@eagle1:~/mythtv-git/mythtv> make distclean
make -C external distclean
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/external'
make -C FFmpeg distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/FFmpeg'
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/FFmpeg'
make -C qjson distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/qjson'
cd src/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythtv/external/qjson/src/src.pro -o Makefile ) && make -f Makefile distclean
make[3]: Entering directory '/home/yianni/mythtv-git/mythtv/external/qjson/src'
rm -f moc_parserrunnable.cpp moc_serializerrunnable.cpp
rm -f json_parser.o json_scanner.o parser.o parserrunnable.o qobjecthelper.o serializer.o serializerrunnable.o moc_parserrunnable.o moc_serializerrunnable.o
rm -f *~ core *.core
rm -f ../lib/libmythqjson.so.0.7.1
rm -f ../lib/libmythqjson.so ../lib/libmythqjson.so.0 ../lib/libmythqjson.so.0.7 ../lib/libmythqjson.a
rm -f Makefile
make[3]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/qjson/src'
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/qjson'
make -C libmythbluray distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/libmythbluray'
rm -f bluray.o register.o bdid_parse.o clpi_parse.o extdata_parse.o index_parse.o meta_parse.o mpls_parse.o navigation.o sound_parse.o graphics_controller.o graphics_processor.o ig_decode.o m2ts_demux.o pes_buffer.o pg_decode.o dir_mythiowrapper.o dir_posix.o dl_posix.o filesystem.o file_mythiowrapper.o file_posix.o hdmv_vm.o mobj_parse.o mobj_print.o bits.o logging.o strutl.o
rm -f libmythbluray-0.28.a
rm -f *~ core *.core
rm -f libmythbluray-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/libmythbluray'
make -C libmythdvdnav distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/libmythdvdnav'
rm -f dvdnav.o read_cache.o navigation.o vm_serialize.o getset.o play.o vmget.o highlight.o searching.o settings.o decoder.o vm.o vmcmd.o dvd_reader.o nav_read.o ifo_read.o dvd_input.o dvd_udf.o md5.o nav_print.o ifo_print.o bitreader.o
rm -f libmythdvdnav-0.28.a
rm -f *~ core *.core
rm -f libmythdvdnav-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/libmythdvdnav'
make -C libsamplerate distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/libsamplerate'
rm -f samplerate.o src_linear.o src_sinc.o src_zoh.o
rm -f libmythsamplerate-0.28.a
rm -f *~ core *.core
rm -f libmythsamplerate-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/libsamplerate'
make -C minilzo distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/minilzo'
rm -f minilzo.o
rm -f libmythminilzo-0.28.a
rm -f *~ core *.core
rm -f libmythminilzo-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/minilzo'
make -C libmythsoundtouch distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/external/libmythsoundtouch'
rm -f AAFilter.o FIRFilter.o FIFOSampleBuffer.o RateTransposer.o SoundTouch.o TDStretch.o cpu_detect_x86_gcc.o sse_gcc.o
rm -f libmythsoundtouch-0.28.a
rm -f *~ core *.core
rm -f libmythsoundtouch-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/external/libmythsoundtouch'
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/external'
make -C bindings/perl distclean
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/bindings/perl'
rm -f Makefile.perl.old
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/bindings/perl'
make -C bindings/python distclean
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/bindings/python'
python setup.py clean --all
running clean
'build/lib' does not exist -- can't clean it
'build/bdist.linux-i686' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/bindings/python'
make -C bindings/php distclean
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/bindings/php'
make[1]: Nothing to be done for 'distclean'.
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/bindings/php'
make -C libs distclean
make[1]: Entering directory '/home/yianni/mythtv-git/mythtv/libs'
cd libmythfreesurround/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythtv/libs/libmythfreesurround/libmythfreesurround.pro QMAKE=qmake-qt5 -o Makefile ) && make -f Makefile distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/libs/libmythfreesurround'
rm -f el_processor.o freesurround.o
rm -f libmythfreesurround-0.28.a
rm -f *~ core *.core
rm -f libmythfreesurround-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/libs/libmythfreesurround'
cd libmythbase/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythtv/libs/libmythbase/libmythbase.pro QMAKE=qmake-qt5 -o Makefile ) && make -f Makefile distclean
make[2]: Entering directory '/home/yianni/mythtv-git/mythtv/libs/libmythbase'
rm -f moc_mythsocket.cpp moc_mythsignalingtimer.cpp moc_lcddevice.cpp moc_logging.cpp moc_loggingserver.cpp moc_mythcorecontext.cpp moc_mythsystemprivate.cpp moc_mythdownloadmanager.cpp moc_mythmedia.cpp moc_mythcdrom.cpp moc_filesysteminfo.cpp moc_hardwareprofile.cpp moc_serverpool.cpp moc_signalhandling.cpp moc_housekeeper.cpp moc_mythsystemlegacy.cpp moc_mythsingledownload.cpp moc_mythsystemunix.cpp
rm -f mthread.o mthreadpool.o mythsocket.o mythdbcon.o mythdb.o mythdbparams.o oldsettings.o mythobservable.o mythevent.o mythtimer.o mythsignalingtimer.o mythdirs.o lcddevice.o mythstorage.o remotefile.o mythcorecontext.o mythsystem.o mythlocale.o storagegroup.o mythcoreutil.o mythdownloadmanager.o mythtranslation.o unzip.o iso639.o iso3166.o mythmedia.o mythmiscutil.o mythhdd.o mythcdrom.o dbutil.o logging.o loggingserver.o referencecounter.o mythcommandlineparser.o filesysteminfo.o hardwareprofile.o serverpool.o plist.o signalhandling.o mythtimezone.o mythdate.o mythplugin.o housekeeper.o mythsystemlegacy.o mythtypes.o threadedfilewriter.o mythsingledownload.o codecutil.o mythsession.o Json.o mythsystemunix.o mythcdrom-linux.o moc_mythsocket.o moc_mythsignalingtimer.o moc_lcddevice.o moc_logging.o moc_loggingserver.o moc_mythcorecontext.o moc_mythsystemprivate.o moc_mythdownloadmanager.o moc_mythmedia.o moc_mythcdrom.o moc_filesysteminfo.o moc_hardwareprofile.o moc_serverpool.o moc_signalhandling.o moc_housekeeper.o moc_mythsystemlegacy.o moc_mythsingledownload.o moc_mythsystemunix.o
rm -f libmythbase-0.28.so.0.28.0 libmythbase-0.28.a libmythbase-0.28.so.0.28.0 libmythbase-0.28.so libmythbase-0.28.so.0 libmythbase-0.28.so.0.28
rm -f *~ core *.core
rm -f libmythbase-0.28.so.0.28.0
rm -f libmythbase-0.28.so libmythbase-0.28.so.0 libmythbase-0.28.so.0.28 libmythbase-0.28.a
rm -f Makefile
make[2]: Leaving directory '/home/yianni/mythtv-git/mythtv/libs/libmythbase'
cd libmythservicecontracts/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythtv/libs/libmythservicecontracts/libmythservicecontracts.pro QMAKE=qmake-qt5 -o Makefile ) && make -f Makefile distclean
Project ERROR: Unknown module(s) in QT: script
Makefile:112: recipe for target 'sub-libmythservicecontracts-distclean' failed
make[1]: *** [sub-libmythservicecontracts-distclean] Error 3
make[1]: Leaving directory '/home/yianni/mythtv-git/mythtv/libs'
Makefile:73: recipe for target 'libs_distclean' failed
make: *** [libs_distclean] Error 2

I searched for "qt5 | grep -i script" in packages and saw that I was missing libqt5-qtscript-devel and libQt5Script5. I installed both but I'm still getting the same build error.

Any help would be greatly appreciated.

comment:5 Changed 4 years ago by stuartm

The build error you are seeing just doesn't make sense, it's saying "this file has been built with QT 5.4 which is not compatible with the version of QT you are currently building with"

comment:6 Changed 4 years ago by stuartm

Owner: changed from dblain to Stuart Auchterlonie
Status: newassigned

Ok, it's just dawned on me that you're seeing the same issue as Stuart Auchterlonie. You have both QT4 and QT5 libs installed and it's using the QT4 libs in the QT5 build.

comment:7 Changed 4 years ago by Stuart Auchterlonie

Yep this is the same issue, i'm seeing.

Looks like opensuse is the same as fedora in that Qt4 headers install into /usr/include while Qt5 headers install into /usr/include/Qt5, and we have /usr/include on the compile line before the Qt5 headers so it all goes horribly wrong.

Working on resolving this at the moment.

If you need a working system, for now, remove the Qt5 rpms, we don't yet enforce or require Qt5, but we will when we release.

Regards Stuart A

comment:8 Changed 4 years ago by yiannividalis@…

Thanks for your input, Stuart A. I'll be looking forward to any solution you find because since I have the master mythtv version installed I have to have its prerequisites.

Regards, Yianni

comment:9 Changed 4 years ago by yiannividalis@…

Actually, in opensuse the headers are in /usr/include/qt5 (no capital Q)

yianni@eagle1:/mnt> la /usr/include/ | grep -i qt
drwxr-xr-x 1 root root  23778 Μάρ   2 17:54 Qt
drwxr-xr-x 1 root root   7466 Μάρ   2 17:54 Qt3Support
drwxr-xr-x 1 root root    386 Μάρ   5 11:43 qt5
drwxr-xr-x 1 root root  12368 Μάρ   2 17:54 QtCore
drwxr-xr-x 1 root root   1438 Μάρ   2 17:54 QtDBus
drwxr-xr-x 1 root root   2244 Μάρ   2 17:54 QtDeclarative
drwxr-xr-x 1 root root   3790 Μάρ   2 17:54 QtDesigner
drwxr-xr-x 1 root root  26182 Μάρ   2 17:54 QtGui
drwxr-xr-x 1 root root    706 Μάρ   2 17:54 QtHelp
drwxr-xr-x 1 root root    858 Μάρ   2 17:54 QtMultimedia
drwxr-xr-x 1 root root   2174 Μάρ   2 17:54 QtNetwork
drwxr-xr-x 1 root root    768 Μάρ   2 17:54 QtOpenGL
drwxr-xr-x 1 root root   1072 Μάρ   2 17:54 QtScript
drwxr-xr-x 1 root root    114 Μάρ   2 17:54 QtScriptTools
drwxr-xr-x 1 root root   1594 Μάρ   2 17:54 QtSql
drwxr-xr-x 1 root root    230 Μάρ   2 17:54 QtSvg
drwxr-xr-x 1 root root   1520 Μάρ   2 17:54 QtTest
drwxr-xr-x 1 root root     58 Μάρ   2 17:54 QtUiTools
drwxr-xr-x 1 root root   1320 Φεβ  15 20:19 QtWebKit
drwxr-xr-x 1 root root   1556 Μάρ   2 17:54 QtXml
drwxr-xr-x 1 root root   1006 Μάρ   2 17:54 QtXmlPattern

comment:10 Changed 4 years ago by Stuart Auchterlonie

It's the Qt4 headers in /usr/include that are the problem

comment:11 Changed 4 years ago by Stuart Auchterlonie

Component: Bindings - XML/JSONMythTV - General
Milestone: unknown0.28
Priority: minormajor

comment:12 Changed 4 years ago by Stuart Auchterlonie <stuarta@…>

In 70160e0d44dd59f5c28b1b9656fd0e1e68e2a8b0/mythtv:

Refs #12399. Only append header path if it's non standard. Prevents wrong inclusion of Qt4 headers into Qt5 builds on platforms that dump Qt4 headers into /usr/include

comment:13 Changed 4 years ago by Stuart Auchterlonie

Resolution: Fixed
Status: assignedclosed

closing now as I haven't found any other places that require fixing

comment:14 Changed 4 years ago by yiannividalis@…

Thanks for the fix. I can now build mythtv but the plugins stop at mytharchive.

yianni@eagle1:~/mythtv-git/mythplugins> make && sudo make install
cd mytharchive/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythplugins/mytharchive/mytharchive.pro QMAKE=/usr/bin/qmake-qt5 -o Makefile ) && make -f Makefile 
make[1]: Entering directory '/home/yianni/mythtv-git/mythplugins/mytharchive'
cd mytharchive/ && ( test -e Makefile || /usr/bin/qmake-qt5 /home/yianni/mythtv-git/mythplugins/mytharchive/mytharchive/mytharchive.pro QMAKE=/usr/bin/qmake-qt5 -o Makefile ) && make -f Makefile 
make[2]: Entering directory '/home/yianni/mythtv-git/mythplugins/mytharchive/mytharchive'
ccache g++ -c -pipe -march=pentium-m -DNDEBUG -fomit-frame-pointer -fPIC -DQT_DISABLE_DEPRECATED_BEFORE -msse -pthread -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -fvisibility-inlines-hidden -Wmissing-declarations -Wno-switch -Woverloaded-virtual -funit-at-a-time -fvisibility=hidden -g -D_REENTRANT -Wall -W -DPIC -fPIC -D_GNU_SOURCE -DPREFIX="/usr" -DMMX -Di386 -D_FILE_OFFSET_BITS=64 -DMPLUGIN_API -DQT_PLUGIN -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include -isystem /usr/include/libxml2 -isystem /usr/include/mythtv -isystem /usr/include/mythtv/libmythbase -isystem /usr/include/mythtv/libmythui -isystem /usr/include/mythtv/libmyth -isystem /usr/include/mythtv/libavformat -isystem /usr/include/mythtv/libswscale -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtOpenGL -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtSql -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -I/usr/lib/qt5/mkspecs/linux-g++ -o main.o main.cpp
In file included from /usr/include/qt5/QtWidgets/QApplication:1:0,
                 from main.cpp:15:
/usr/include/qt5/QtWidgets/qapplication.h:103:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
/usr/include/qt5/QtWidgets/qapplication.h:143:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
/usr/include/qt5/QtWidgets/qapplication.h:173:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
In file included from /usr/include/qt5/QtSql/QSqlError:1:0,
                 from /usr/include/mythtv/mythdbcon.h:6,
                 from /usr/include/mythtv/mythdb.h:8,
                 from /usr/include/mythtv/mythcorecontext.h:8,
                 from /usr/include/mythtv/mythcontext.h:7,
                 from main.cpp:21:
/usr/include/qt5/QtSql/qsqlerror.h:54:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 3)
                        ^
/usr/include/qt5/QtSql/qsqlerror.h:71:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 3)
                        ^
/usr/include/qt5/QtSql/qsqlerror.h:78:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 1)
                        ^
In file included from /usr/include/qt5/QtCore/QDateTime:1:0,
                 from /usr/include/mythtv/mythdbcon.h:10,
                 from /usr/include/mythtv/mythdb.h:8,
                 from /usr/include/mythtv/mythcorecontext.h:8,
                 from /usr/include/mythtv/mythcontext.h:7,
                 from main.cpp:21:
/usr/include/qt5/QtCore/qdatetime.h:80:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5,0)
                        ^
/usr/include/qt5/QtCore/qdatetime.h:272:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 2)
                        ^
In file included from /usr/include/qt5/QtGui/QRegion:1:0,
                 from /usr/include/mythtv/libmythui/mythuitype.h:5,
                 from /usr/include/mythtv/libmythui/mythuicomposite.h:4,
                 from /usr/include/mythtv/libmythui/mythscreentype.h:4,
                 from /usr/include/mythtv/libmythui/myththemedmenu.h:4,
                 from main.cpp:26:
/usr/include/qt5/QtGui/qregion.h:91:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
In file included from /usr/include/qt5/QtGui/QFont:1:0,
                 from /usr/include/mythtv/libmythui/mythuitype.h:9,
                 from /usr/include/mythtv/libmythui/mythuicomposite.h:4,
                 from /usr/include/mythtv/libmythui/mythscreentype.h:4,
                 from /usr/include/mythtv/libmythui/myththemedmenu.h:4,
                 from main.cpp:26:
/usr/include/qt5/QtGui/qfont.h:238:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 3)
                        ^
/usr/include/qt5/QtGui/qfont.h:255:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
In file included from /usr/include/qt5/QtWidgets/qabstractitemview.h:39:0,
                 from /usr/include/qt5/QtWidgets/qlistview.h:37,
                 from /usr/include/qt5/QtWidgets/qlistwidget.h:37,
                 from /usr/include/qt5/QtWidgets/QListWidget:1,
                 from /usr/include/mythtv/mythwidgets.h:22,
                 from /usr/include/mythtv/settings.h:14,
                 from archivesettings.h:12,
                 from main.cpp:31:
/usr/include/qt5/QtCore/qitemselectionmodel.h:85:24: error: missing binary operator before token "("
 #if QT_DEPRECATED_SINCE(5, 0)
                        ^
In file included from /usr/include/qt5/QtGui/qguiapplication.h:39:0,
                 from /usr/include/qt5/QtWidgets/qapplication.h:48,
                 from /usr/include/qt5/QtWidgets/QApplication:1,
                 from main.cpp:15:
/usr/include/qt5/QtGui/qinputmethod.h:82:5: error: ‘QLocale’ does not name a type
     QLocale locale() const;
     ^
/usr/include/qt5/QtGui/qinputmethod.h:91:21: error: ‘Qt::InputMethodQueries’ has not been declared
     void update(Qt::InputMethodQueries queries);
                     ^
In file included from /usr/include/qt5/QtWidgets/qapplication.h:48:0,
                 from /usr/include/qt5/QtWidgets/QApplication:1,
                 from main.cpp:15:
/usr/include/qt5/QtGui/qguiapplication.h:85:12: error: ‘QWindowList’ does not name a type
     static QWindowList allWindows();
            ^
/usr/include/qt5/QtGui/qguiapplication.h:86:12: error: ‘QWindowList’ does not name a type
     static QWindowList topLevelWindows();
            ^
/usr/include/qt5/QtGui/qguiapplication.h:138:12: error: ‘QFunctionPointer’ does not name a type
     static QFunctionPointer platformFunction(const QByteArray &function);
            ^
/usr/include/qt5/QtGui/qguiapplication.h:143:12: error: ‘ApplicationState’ in namespace ‘Qt’ does not name a type
     static Qt::ApplicationState applicationState();
            ^
/usr/include/qt5/QtGui/qguiapplication.h:164:38: error: ‘Qt::ApplicationState’ has not been declared
     void applicationStateChanged(Qt::ApplicationState state);
                                      ^
In file included from /usr/include/qt5/QtWidgets/QApplication:1:0,
                 from main.cpp:15:
/usr/include/qt5/QtWidgets/qapplication.h:68:37: error: expected initializer before ‘:’ token
 class Q_WIDGETS_EXPORT QApplication : public QGuiApplication
                                     ^
Makefile:529: recipe for target 'main.o' failed
make[2]: *** [main.o] Error 1
make[2]: Leaving directory '/home/yianni/mythtv-git/mythplugins/mytharchive/mytharchive'
Makefile:45: recipe for target 'sub-mytharchive-make_first' failed
make[1]: *** [sub-mytharchive-make_first] Error 2
make[1]: Leaving directory '/home/yianni/mythtv-git/mythplugins/mytharchive'
Makefile:51: recipe for target 'sub-mytharchive-make_first' failed
make: *** [sub-mytharchive-make_first] Error 2

Should I create a new ticket?

comment:15 Changed 4 years ago by yiannividalis@…

Please disregard last comment. After removing the mythplugins folder and running 'git reset --hard' it builds. Thanks for all your help, Stuart.

comment:16 Changed 4 years ago by Stuart Auchterlonie

For the record, i had that issue to until i installed the mythtv build, distclean'd the plugins and built them.

Note: See TracTickets for help on using tickets.