In e.g. https://build.opensuse.org/package/show/isv:ownCloud:testpilot:nightly/testpilotcloud-client
we have compile errors with
CentOS_7, Debian_7, Fedora_24, openSUSE_13.1
Debian_7 has this error in the logs:
[ 319s] In file included from /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/testpilotcloudsync_automoc.cpp:24:0: [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp: In static member function 'static void OCC::UploadDevice::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)': [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp:79:21: error: 'class OCC::UploadDevice' has no member named 'wasReset' [ 319s] In file included from /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/testpilotcloudsync_automoc.cpp:24:0: [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp:88:67: error: 'wasReset' is not a member of 'OCC::UploadDevice' [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp: At global scope: [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp:133:34: error: no 'void OCC::UploadDevice::wasReset()' member function declared in class 'OCC::UploadDevice' [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp: In static member function 'static void OCC::PUTFileJob::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)': [ 319s] /usr/src/packages/BUILD/obj-x86_64-linux-gnu/src/libsync/moc_propagateupload.cpp:198:21: error: 'class OCC::PUTFileJob' has no member named 'slotSoftAbort' [ 320s] make[3]: *** [src/libsync/CMakeFiles/testpilotcloudsync.dir/testpilotcloudsync_automoc.cpp.o] Error 1
The Debian_7 error was probably introduced by https://github.com/owncloud/client/commit/3cea550d08423579cccc15997d510ece6fec49ed and scripting/client/templates commit/57a92cf15d93b8562b49e7d40dae3e002f10052f
It may be triggering an issue with moc. An ugly workaround for the issue is
--- debian.rules
+++ debian.rules
@@ -32,6 +32,9 @@ override_dh_auto_configure:
# protect against poisonous tar-balls.
if [ -d binary ]; then ls -la; echo; echo "A top level directory named 'binary' exists. This kills dpkg-genchangelog."; echo; echo "Please remove that directory."; echo; echo; sleep 30; rm -rf binary; fi
+ # this check against QT 5.4.2 fails on Debian 7. We know that we have qt-5.6.2 here.
+ sed -i -e 's/#if QT_VERSION < .*/#if 0/' src/libsync/propagateupload.h
+
git_defs=('-DMIRALL_VERSION_BUILD=@BUILD_NUMBER@'); \
if [ -n "@PRERELEASE@" -a "@PRERELEASE@" != "%nil" ]; then \
git_defs=('-DMIRALL_VERSION_SUFFIX=@PRERELEASE@' '-DMIRALL_VERSION_BUILD=@BUILD_NUMBER@'); \
@dschmidt I am reverting to CMakeLists.txt editing. This does not trigger the bug that -DCMAKE_PREFIX_PATH would trigger in Debian 7. Hope this is a better fix...
2.3.3 release should come with Debian 7, but we could drop Debian 7 for the 2.4.0 release.
@dschmidt When can I get Debian 7 builds back ?
Can you please give me the log file where moc is called to generate moc_propagateupload.cpp Are you sure the right moc is in use and that the right include paths are passed to it?
We should make sure this goes well otherwise there might be more subtle errors that can only be seen at runtime.
The Debian_7 error was probably introduced by 3cea550
No, quite the contrary. I removed that code when you said that you has this error. So this would fix this error. However as i said there might be another problem with the moc generation that we need to figure out.
Reverting back to patching CMakeLists.txt fixes that all.
@ogoffart You are right. I misunderstood your fix. -Sorry. The issue is with cmake and moc. Probably this one: http://gccxml.org/Bug/bug_relationship_graph.php?bug_id=13493&graph=dependency&orientation=vertical (We still don't have the moc command line. Make needs a more verbose setting to reveal this)
@michaelstingl All packages for platforms now build with 2.3.3 nightly
https://build.opensuse.org/project/monitor/isv:ownCloud:testpilot:nightly (ready for release :-))
@dschmidt Something is odd in https://build.opensuse.org/project/monitor/isv:ownCloud:testpilot:edge all the overlay packages fail to find QtCore...
@jnweiger do you have the line of the log that show the command used to generate moc_propagateupload.cpp ?
Will take a look tomorrow.
All the 2.3 things seem to compile?
I'll change the milestone here. The blockers for 2.3 are more important: https://github.com/owncloud/client/issues/5889#issuecomment-317343952
CC @SamuAlfageme
The problem is both in 2.3 and 2.4. OBS is currently green because it is worked arounded.
However we really need to see the full logs of the problematic compilation to be able to investigate what the problem is.
@ogoffart Would you say the workaround is OK or does it block the release (and I move the milestone back) even though OBS is green?
@dschmidt Could you take care, to get the full log output?
@michaelstingl @ogoffart full output of what?
@dschmidt @ogoffart 's request was:
However we really need to see the full logs of the problematic compilation to be able to investigate what the problem is.
It looks like some information is missing. @ogoffart could you elaborate?
The full output of the failed compilation. (the lines before the lines that are in the initial description of this bug)
The initial bug happened because @jnweiger messed with the spec files. There is a bug in an old CMake version which requires us to put include_directories in the CMakeLists.txt instead of just setting CMAKE_PREFIX_PATH.
There is nothing to do in that regard IMHO.
Ah ok, then i guess we can close this issue.
Most helpful comment
2.3.3 release should come with Debian 7, but we could drop Debian 7 for the 2.4.0 release.