Fernando de Oliveira wrote:
On 16-11-2014 03:02, Bruce Dubbs wrote:
Bruce Dubbs wrote:
OK, I deleted /usr/include/boost and /usr/lib/libboost* and reinstalled
boost-1.57
I DID duplicate the problem at exactly the same place as your log
showed. Investigating...
I think it is a Qt bug in the moc program. The Meta Object Compiler
generates .cpp programs that link events and actions (called SLOTs and
SIGNALs in Qt). moc is not parsing the boost include files properly.
https://bugreports.qt-project.org/browse/QTBUG-22829
That bug is from 2011 and they say it's closed, but that's what I think
the problem is for boost-1.57.
It's really hard to see what make is doing. There are numerous errors
like:
AUTOGEN: error: process for
/tmp/kdepim/kdepim-4.14.3/build/kleopatra/tabwidget.moc failed:
usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse
error at "BOOST_JOIN"
Now why the first / is missing and the last p from
has_binary_operator.hpp, I have no idea.
I tried a couple of work-arounds suggested, but couldn't get it to
work.
I forgot this, and after hours, remembered having a log with --debug=v,
from yesterday. Found it and immediately remembered.
Found a workaround at
https://stackoverflow.com/questions/15455178/qt4-cgal-parse-error-at-boost-join
and did it:
$ diff -Naur \
/usr/include/boost/type_traits/detail/has_binary_operator.hpp.orig \
/usr/include/boost/type_traits/detail/has_binary_operator.hpp
--- /usr/include/boost/type_traits/detail/has_binary_operator.hpp.orig
2014-11-16 07:56:40.753957943 -0300
+++ /usr/include/boost/type_traits/detail/has_binary_operator.hpp
2014-11-16 09:45:26.592428087 -0300
@@ -5,7 +5,7 @@
// http://www.boost.org/LICENSE_1_0.txt).
//
// See http://www.boost.org/libs/type_traits for most recent version
including documentation.
-
+#ifndef Q_MOC_RUN
#include <boost/config.hpp>
#include <boost/type_traits/ice.hpp>
#include <boost/type_traits/integral_constant.hpp>
@@ -227,3 +227,4 @@
#endif
#include <boost/type_traits/detail/bool_trait_undef.hpp>
+#endif
Now it builds successfully.
Excellent.
No idea how hurtful this is for the system and for kdepim. That is why I
don't state I have the solution.
The original header is identical to the one of boost-1.56.0:
Yes, there is something else going on here, but I don't know what.
We shouldn't spend a lot of time on upstream problems though if we have
a decent workaround. The Q_MOC_RUN string is only defined for moc, so
adding that does not hurt anything else and moc doesn't need to look at
those system headers.
I'm beginning to think that we do need to revert back to boost-1.56, at
least until this problem is solved.
Well a little more progress. The problem is limited to kleopatra.
I was able to build without errors and with boost-1.57 with:
cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \
-DSYSCONF_INSTALL_DIR=/etc \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_kleopatra:BOOL=OFF \
-Wno-dev ..
I had sent this result to you before :-(. No complaint, I also forgot
what you wrote above.
Sorry. I missed that earlier comment.
Also only remembered today Armin's suggestion (apologies and thanks)
-DKDE4_BUILD_TESTS=OFF
I used it with
-DKDEPIM_BUILD_MOBILE=OFF
But no success.
Think we should include this and Armin's suggestion to all KDE. But you
KDE users and maintainers know better than me.
Why do you think we need these defines? I certainly didn't need them.
However they may save build time and install space on some of the larger
packages.
I added these into my build script and they didn't seem to do much. At
least the build time to failure was about a minute less.
Now, I will see what happens with the rest of KDE, while I wait opinions
about that workaround.
The workaround then is for boost before install:
sed -e '1 i#ifndef Q_MOC_RUN' \
-e '$ a#endif' \
-i boost/type_traits/detail/has_binary_operator.hpp
That could also be done after install in /usr/install, but is not optimal.
In any case, I did the above and the messages about 'Parse error at
"BOOST_JOIN"' are gone, but I still get an error:
Cannot create
/tmp/kdepim/kdepim-4.14.3/build/kleopatra/libkleopatraclient/core/moc_command_p.cpp
but nothing else. I have /tmp/kdepim/kdepim-4.14.3/build/kleopatra, but
no libkleopatraclient directory.
I'm using:
cmake -DCMAKE_INSTALL_PREFIX=$KDE_PREFIX \
-DSYSCONF_INSTALL_DIR=/etc \
-DCMAKE_BUILD_TYPE=Release \
-DKDE4_BUILD_TESTS=OFF \
-DKDEPIM_BUILD_MOBILE=OFF \
-DBUILD_agents:BOOL=OFF \
-DBUILD_akonadiconsole:BOOL=OFF \
-DBUILD_akregator:BOOL=OFF \
-DBUILD_console:BOOL=OFF \
-DBUILD_doc:BOOL=OFF \
-DBUILD_grantleeeditor:BOOL=OFF \
-DBUILD_importwizard:BOOL=OFF \
-DBUILD_kaddressbook:BOOL=OFF \
-DBUILD_kalarm:BOOL=OFF \
-DBUILD_kjots:BOOL=OFF \
-DBUILD_kleopatra:BOOL=ON \
-DBUILD_kmail:BOOL=OFF \
-DBUILD_kmailcvt:BOOL=OFF \
-DBUILD_knode:BOOL=OFF \
-DBUILD_knotes:BOOL=OFF \
-DBUILD_kontact:BOOL=OFF \
-DBUILD_korgac:BOOL=OFF \
-DBUILD_korganizer:BOOL=OFF \
-DBUILD_ksendemail:BOOL=OFF \
-DBUILD_ktimetracker:BOOL=OFF \
-DBUILD_ktnef:BOOL=OFF \
-DBUILD_libkleopatraclient:BOOL=OFF \
-DBUILD_mailimporter:BOOL=OFF \
-DBUILD_mboximporter:BOOL=OFF \
-DBUILD_messagecomposer:BOOL=OFF \
-DBUILD_pimsettingexporter:BOOL=OFF \
-DBUILD_sieveeditor:BOOL=OFF \
-DBUILD_storageservicemanager:BOOL=OFF \
-Wno-dev .. &&
make VERBOSE=1
I'll try again with a full build but that will take a while.
-- Bruce
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page