--- /dev/null
+From: Michael Pyne <mpyne@kde.org>
+Date: Fri, 04 Sep 2015 01:59:01 +0000
+Subject: Build with recent Boost.
+X-Git-Url: http://quickgit.kde.org/?p=kdepim.git&a=commitdiff&h=3c72e211dc4ee1420bf744312036dc2141238912
+---
+Build with recent Boost.
+
+The issue is that recent versions of Boost have widespread usage of a
+technique involving the generation of namespace names using a special
+macro, BOOST_JOIN. This macro breaks moc with Qt 4, leading to
+compilation failures unless Boost is downgraded.
+
+moc is fixed for Qt 5 but the change is too invasive to backport.
+Instead, we use the technique recommended by the Qt devs and tell moc to
+avoid scanning Boost headers wherever we use them. Some headers already
+had this fix applied; this patch completes the work.
+
+See also QTBUG-22829.
+
+REVIEW:124926
+---
+
+
+--- a/kleopatra/commands/certifycertificatecommand.cpp
++++ b/kleopatra/commands/certifycertificatecommand.cpp
+@@ -52,7 +52,9 @@
+ #include <KLocalizedString>
+ #include <kdebug.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/commands/deletecertificatescommand.cpp
++++ b/kleopatra/commands/deletecertificatescommand.cpp
+@@ -54,7 +54,9 @@
+ #include <QPointer>
+ #include <QAbstractItemView>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <vector>
+
+--- a/kleopatra/commands/exportcertificatecommand.cpp
++++ b/kleopatra/commands/exportcertificatecommand.cpp
+@@ -53,7 +53,9 @@
+ #include <QMap>
+ #include <QPointer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+ #include <algorithm>
+ #include <vector>
+ #include <cassert>
+
+--- a/kleopatra/commands/importcertificatescommand.cpp
++++ b/kleopatra/commands/importcertificatescommand.cpp
+@@ -59,8 +59,10 @@
+ #include <QTreeView>
+ #include <QTextDocument> // for Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <memory>
+ #include <algorithm>
+
+--- a/kleopatra/commands/lookupcertificatescommand.cpp
++++ b/kleopatra/commands/lookupcertificatescommand.cpp
+@@ -59,8 +59,10 @@
+
+ #include <QRegExp>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+ #include <map>
+
+--- a/kleopatra/commands/reloadkeyscommand.cpp
++++ b/kleopatra/commands/reloadkeyscommand.cpp
+@@ -41,7 +41,9 @@
+
+ #include <gpgme++/keylistresult.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace boost;
+
+--- a/kleopatra/commands/selftestcommand.cpp
++++ b/kleopatra/commands/selftestcommand.cpp
+@@ -57,8 +57,10 @@
+ #include <KSplashScreen>
+ #include <KSharedConfig>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/conf/appearanceconfigwidget.cpp
++++ b/kleopatra/conf/appearanceconfigwidget.cpp
+@@ -62,8 +62,10 @@
+ #include <QColorDialog>
+ #include <QFontDialog>
+
++#ifndef Q_MOC_RUN
+ #include <boost/range.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/conf/cryptooperationsconfigwidget.cpp
++++ b/kleopatra/conf/cryptooperationsconfigwidget.cpp
+@@ -47,7 +47,9 @@
+
+ #include <QLayout>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Config;
+
+--- a/kleopatra/crypto/certificateresolver.cpp
++++ b/kleopatra/crypto/certificateresolver.cpp
+@@ -45,7 +45,9 @@
+ #include <QHash>
+ #include <QSet>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <iterator>
+
+--- a/kleopatra/crypto/controller.h
++++ b/kleopatra/crypto/controller.h
+@@ -40,7 +40,9 @@
+ #include <utils/pimpl_ptr.h>
+ #include <utils/types.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QDialog;
+
+
+--- a/kleopatra/crypto/createchecksumscontroller.cpp
++++ b/kleopatra/crypto/createchecksumscontroller.cpp
+@@ -62,8 +62,10 @@
+ #include <QDir>
+ #include <QProcess>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
++#endif
+
+ #include <gpg-error.h>
+
+
+--- a/kleopatra/crypto/createchecksumscontroller.h
++++ b/kleopatra/crypto/createchecksumscontroller.h
+@@ -40,7 +40,9 @@
+ #include <gpgme++/global.h>
+ #include <kmime/kmime_header_parsing.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/decryptverifyemailcontroller.cpp
++++ b/kleopatra/crypto/decryptverifyemailcontroller.cpp
+@@ -58,7 +58,9 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <memory>
+ #include <vector>
+
+--- a/kleopatra/crypto/decryptverifyemailcontroller.h
++++ b/kleopatra/crypto/decryptverifyemailcontroller.h
+@@ -41,7 +41,9 @@
+
+ #include <QMetaType>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/decryptverifyfilescontroller.cpp
++++ b/kleopatra/crypto/decryptverifyfilescontroller.cpp
+@@ -56,7 +56,9 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <memory>
+ #include <vector>
+
+--- a/kleopatra/crypto/decryptverifytask.cpp
++++ b/kleopatra/crypto/decryptverifytask.cpp
+@@ -75,7 +75,9 @@
+ #include <QStringList>
+ #include <QTextDocument> // Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/crypto/decryptverifytask.h
++++ b/kleopatra/crypto/decryptverifytask.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/verificationresult.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+
+ namespace KMime {
+
+--- a/kleopatra/crypto/encryptemailcontroller.cpp
++++ b/kleopatra/crypto/encryptemailcontroller.cpp
+@@ -58,8 +58,10 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/encryptemailtask.cpp
++++ b/kleopatra/crypto/encryptemailtask.cpp
+@@ -52,7 +52,9 @@
+ #include <QPointer>
+ #include <QTextDocument> // for Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/encryptemailtask.h
++++ b/kleopatra/crypto/encryptemailtask.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/gui/decryptverifyfileswizard.cpp
++++ b/kleopatra/crypto/gui/decryptverifyfileswizard.cpp
+@@ -57,7 +57,9 @@
+ #include <QTimer>
+ #include <QTreeView>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <vector>
+ #include <cassert>
+
+--- a/kleopatra/crypto/gui/decryptverifyfileswizard.h
++++ b/kleopatra/crypto/gui/decryptverifyfileswizard.h
+@@ -37,7 +37,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ namespace Kleo {
+ namespace Crypto {
+
+--- a/kleopatra/crypto/gui/decryptverifyoperationwidget.cpp
++++ b/kleopatra/crypto/gui/decryptverifyoperationwidget.cpp
+@@ -45,7 +45,9 @@
+ #include <QStackedLayout>
+ #include <QComboBox>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto::Gui;
+
+--- a/kleopatra/crypto/gui/newresultpage.cpp
++++ b/kleopatra/crypto/gui/newresultpage.cpp
+@@ -41,7 +41,9 @@
+
+ #include <kleo/stl_util.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <KLocalizedString>
+
+
+--- a/kleopatra/crypto/gui/newsignencryptfileswizard.cpp
++++ b/kleopatra/crypto/gui/newsignencryptfileswizard.cpp
+@@ -73,8 +73,10 @@
+
+ #include <gpgme++/key.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace GpgME;
+ using namespace boost;
+
+--- a/kleopatra/crypto/gui/resolverecipientspage.cpp
++++ b/kleopatra/crypto/gui/resolverecipientspage.cpp
+@@ -61,8 +61,10 @@
+ #include <QStringList>
+ #include <QVBoxLayout>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/crypto/gui/resolverecipientspage.h
++++ b/kleopatra/crypto/gui/resolverecipientspage.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/gui/resultitemwidget.h
++++ b/kleopatra/crypto/gui/resultitemwidget.h
+@@ -39,7 +39,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QString;
+
+
+--- a/kleopatra/crypto/gui/resultlistwidget.cpp
++++ b/kleopatra/crypto/gui/resultlistwidget.cpp
+@@ -50,8 +50,10 @@
+ #include <QLabel>
+ #include <QVBoxLayout>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/crypto/gui/resultlistwidget.h
++++ b/kleopatra/crypto/gui/resultlistwidget.h
+@@ -39,7 +39,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QString;
+
+
+--- a/kleopatra/crypto/gui/resultpage.h
++++ b/kleopatra/crypto/gui/resultpage.h
+@@ -39,7 +39,9 @@
+ #include <utils/pimpl_ptr.h>
+
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ namespace Kleo {
+ namespace Crypto {
+
+--- a/kleopatra/crypto/gui/signencryptemailconflictdialog.cpp
++++ b/kleopatra/crypto/gui/signencryptemailconflictdialog.cpp
+@@ -68,8 +68,10 @@
+ #include <QStyle>
+ #include <QPointer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ #include <iterator>
+
+
+--- a/kleopatra/crypto/gui/signencryptwizard.cpp
++++ b/kleopatra/crypto/gui/signencryptwizard.cpp
+@@ -55,7 +55,9 @@
+ #include <QFileInfo>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/gui/signencryptwizard.h
++++ b/kleopatra/crypto/gui/signencryptwizard.h
+@@ -42,7 +42,9 @@
+ #include <gpgme++/global.h>
+ #include <kmime/kmime_header_parsing.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/gui/signerresolvepage.h
++++ b/kleopatra/crypto/gui/signerresolvepage.h
+@@ -40,7 +40,9 @@
+ #include <gpgme++/global.h>
+ #include <kmime/kmime_header_parsing.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/gui/signingcertificateselectionwidget.cpp
++++ b/kleopatra/crypto/gui/signingcertificateselectionwidget.cpp
+@@ -45,7 +45,9 @@
+ #include <QByteArray>
+ #include <QMap>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/crypto/gui/verifychecksumsdialog.cpp
++++ b/kleopatra/crypto/gui/verifychecksumsdialog.cpp
+@@ -53,7 +53,9 @@
+ #include <QPushButton>
+ #include <QHeaderView>
+
++#ifndef Q_MOC_RUN
+ #include <boost/static_assert.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/crypto/newsignencryptemailcontroller.cpp
++++ b/kleopatra/crypto/newsignencryptemailcontroller.cpp
+@@ -63,8 +63,10 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/recipient.h
++++ b/kleopatra/crypto/recipient.h
+@@ -35,7 +35,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/sender.h
++++ b/kleopatra/crypto/sender.h
+@@ -35,7 +35,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/signemailcontroller.cpp
++++ b/kleopatra/crypto/signemailcontroller.cpp
+@@ -55,8 +55,10 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/signemailtask.cpp
++++ b/kleopatra/crypto/signemailtask.cpp
+@@ -52,8 +52,10 @@
+ #include <QPointer>
+ #include <QTextDocument> // for Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/signemailtask.h
++++ b/kleopatra/crypto/signemailtask.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/signencryptfilescontroller.cpp
++++ b/kleopatra/crypto/signencryptfilescontroller.cpp
+@@ -58,7 +58,9 @@
+ #include <QTimer>
+ #include <QFileInfo>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/signencryptfilescontroller.h
++++ b/kleopatra/crypto/signencryptfilescontroller.h
+@@ -40,7 +40,9 @@
+ #include <gpgme++/global.h>
+ #include <kmime/kmime_header_parsing.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/signencryptfilestask.cpp
++++ b/kleopatra/crypto/signencryptfilestask.cpp
+@@ -60,7 +60,9 @@
+ #include <QPointer>
+ #include <QTextDocument> // for Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/task.cpp
++++ b/kleopatra/crypto/task.cpp
+@@ -50,7 +50,9 @@
+
+ #include <QString>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace Kleo::Crypto;
+
+--- a/kleopatra/crypto/task.h
++++ b/kleopatra/crypto/task.h
+@@ -40,7 +40,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QColor;
+ class QIcon;
+
+--- a/kleopatra/crypto/taskcollection.cpp
++++ b/kleopatra/crypto/taskcollection.cpp
+@@ -36,7 +36,9 @@
+
+ #include <crypto/task.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <map>
+
+--- a/kleopatra/crypto/taskcollection.h
++++ b/kleopatra/crypto/taskcollection.h
+@@ -39,7 +39,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/crypto/verifychecksumscontroller.cpp
++++ b/kleopatra/crypto/verifychecksumscontroller.cpp
+@@ -57,8 +57,10 @@
+ #include <QDir>
+ #include <QProcess>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
++#endif
+
+ #include <gpg-error.h>
+
+
+--- a/kleopatra/crypto/verifychecksumscontroller.h
++++ b/kleopatra/crypto/verifychecksumscontroller.h
+@@ -42,7 +42,9 @@
+ #include <gpgme++/global.h>
+ #include <kmime/kmime_header_parsing.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/dialogs/certificatedetailsdialog.cpp
++++ b/kleopatra/dialogs/certificatedetailsdialog.cpp
+@@ -66,7 +66,9 @@
+ #include <QPointer>
+ #include <QHeaderView>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/dialogs/certificateselectiondialog.cpp
++++ b/kleopatra/dialogs/certificateselectiondialog.cpp
+@@ -59,7 +59,9 @@
+ #include <QPointer>
+ #include <QVBoxLayout>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+
+
+--- a/kleopatra/dialogs/certifycertificatedialog.cpp
++++ b/kleopatra/dialogs/certifycertificatedialog.cpp
+@@ -54,7 +54,9 @@
+
+ #include <QTextDocument> // Qt::escape
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <gpg-error.h>
+
+
+--- a/kleopatra/dialogs/deletecertificatesdialog.cpp
++++ b/kleopatra/dialogs/deletecertificatesdialog.cpp
+@@ -56,7 +56,9 @@
+
+ #include <gpgme++/key.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/dialogs/lookupcertificatesdialog.cpp
++++ b/kleopatra/dialogs/lookupcertificatesdialog.cpp
+@@ -50,7 +50,9 @@
+ #include <QPushButton>
+ #include <QHeaderView>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/dialogs/selftestdialog.cpp
++++ b/kleopatra/dialogs/selftestdialog.cpp
+@@ -44,7 +44,9 @@
+ #include <QHeaderView>
+ #include <QSortFilterProxyModel>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+ #include <vector>
+
+--- a/kleopatra/dialogs/setinitialpindialog.cpp
++++ b/kleopatra/dialogs/setinitialpindialog.cpp
+@@ -43,7 +43,9 @@
+
+ #include <gpgme++/error.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/static_assert.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/kleopatraapplication.cpp
++++ b/kleopatra/kleopatraapplication.cpp
+@@ -69,10 +69,12 @@
+ #include <QDir>
+ #include <QPointer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/range.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <memory>
+
+
+--- a/kleopatra/libkleopatraclient/core/command.cpp
++++ b/kleopatra/libkleopatraclient/core/command.cpp
+@@ -44,8 +44,10 @@
+ #include <assuan.h>
+ #include <gpg-error.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/type_traits/remove_pointer.hpp>
++#endif
+
+ #include <algorithm>
+ #include <string>
+
+--- a/kleopatra/main.cpp
++++ b/kleopatra/main.cpp
+@@ -89,7 +89,9 @@
+ #include <gpgme++/global.h>
+ #include <gpgme++/error.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/mainwindow_desktop.cpp
++++ b/kleopatra/mainwindow_desktop.cpp
+@@ -89,8 +89,10 @@
+ #include <kleo/cryptoconfig.h>
+ #include <kleo/stl_util.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/mainwindow_mobile.cpp
++++ b/kleopatra/mainwindow_mobile.cpp
+@@ -93,8 +93,10 @@
+ #include <ui/cryptoconfigdialog.h>
+ #include <kleo/cryptoconfig.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/kleopatra/models/keycache.cpp
++++ b/kleopatra/models/keycache.cpp
+@@ -63,11 +63,13 @@
+ #include <QPointer>
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
+ #include <boost/range.hpp>
+ #include <boost/weak_ptr.hpp>
+ #include <boost/iterator/filter_iterator.hpp>
++#endif
+
+ #include <utility>
+ #include <algorithm>
+
+--- a/kleopatra/models/keycache.h
++++ b/kleopatra/models/keycache.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <string>
+ #include <vector>
+
+--- a/kleopatra/models/keylistsortfilterproxymodel.cpp
++++ b/kleopatra/models/keylistsortfilterproxymodel.cpp
+@@ -42,7 +42,9 @@
+
+ #include <kleo/stl_util.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/models/keylistsortfilterproxymodel.h
++++ b/kleopatra/models/keylistsortfilterproxymodel.h
+@@ -37,7 +37,9 @@
+ #include <models/keylistmodelinterface.h>
+
+ #include <utils/pimpl_ptr.h>
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ namespace GpgME {
+ class Key;
+
+--- a/kleopatra/models/predicates.h
++++ b/kleopatra/models/predicates.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/key.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cstring>
+ #include <algorithm>
+
+--- a/kleopatra/models/subkeylistmodel.cpp
++++ b/kleopatra/models/subkeylistmodel.cpp
+@@ -43,7 +43,9 @@
+ #include <QVariant>
+ #include <QDate>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <iterator>
+
+--- a/kleopatra/models/useridlistmodel.cpp
++++ b/kleopatra/models/useridlistmodel.cpp
+@@ -43,7 +43,9 @@
+ #include <QVariant>
+ #include <QDate>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <iterator>
+
+--- a/kleopatra/newcertificatewizard/newcertificatewizard.cpp
++++ b/kleopatra/newcertificatewizard/newcertificatewizard.cpp
+@@ -78,7 +78,9 @@
+ #include <QUrl>
+ #include <QDesktopServices>
+
++#ifndef Q_MOC_RUN
+ #include <boost/range.hpp>
++#endif
+
+ #include <algorithm>
+
+
+--- a/kleopatra/selftest/enginecheck.cpp
++++ b/kleopatra/selftest/enginecheck.cpp
+@@ -48,8 +48,10 @@
+ #include <QFile>
+ #include <QRegExp>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/range.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/selftest/gpgagentcheck.cpp
++++ b/kleopatra/selftest/gpgagentcheck.cpp
+@@ -46,7 +46,9 @@
+
+ #include <KLocalizedString>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/selftest/gpgconfcheck.cpp
++++ b/kleopatra/selftest/gpgconfcheck.cpp
+@@ -45,7 +45,9 @@
+ #include <QProcess>
+ #include <QDir>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/selftest/libkleopatrarccheck.cpp
++++ b/kleopatra/selftest/libkleopatrarccheck.cpp
+@@ -43,7 +43,9 @@
+ #include <KLocalizedString>
+
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/selftest/registrycheck.cpp
++++ b/kleopatra/selftest/registrycheck.cpp
+@@ -41,7 +41,9 @@
+
+ #include <QSettings>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/selftest/uiservercheck.cpp
++++ b/kleopatra/selftest/uiservercheck.cpp
+@@ -45,7 +45,9 @@
+
+ #include <KLocalizedString>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/smartcard/readerstatus.cpp
++++ b/kleopatra/smartcard/readerstatus.cpp
+@@ -58,12 +58,14 @@
+ #include <QThread>
+ #include <QPointer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/algorithm/string/split.hpp>
+ #include <boost/algorithm/string/classification.hpp>
+ #include <boost/algorithm/string/case_conv.hpp>
+ #include <boost/static_assert.hpp>
+ #include <boost/range.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ #include <vector>
+ #include <set>
+
+--- a/kleopatra/systrayicon.cpp
++++ b/kleopatra/systrayicon.cpp
+@@ -64,8 +64,10 @@
+ #include <QClipboard>
+ #include <QPointer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/kleopatra/uiserver/assuancommand.h
++++ b/kleopatra/uiserver/assuancommand.h
+@@ -47,8 +47,10 @@
+
+ #include <qwindowdefs.h> // for WId
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/enable_shared_from_this.hpp>
++#endif
+
+ #include <string>
+ #include <map>
+
+--- a/kleopatra/uiserver/assuanserverconnection.h
++++ b/kleopatra/uiserver/assuanserverconnection.h
+@@ -39,7 +39,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <string>
+ #include <vector>
+
+--- a/kleopatra/uiserver/selectcertificatecommand.cpp
++++ b/kleopatra/uiserver/selectcertificatecommand.cpp
+@@ -38,7 +38,9 @@
+
+ #include <models/keycache.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <kleo/stl_util.h>
+ #include <kleo/exception.h>
+
+--- a/kleopatra/uiserver/sessiondata.cpp
++++ b/kleopatra/uiserver/sessiondata.cpp
+@@ -38,7 +38,9 @@
+
+ #include <QMutex>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace boost;
+
+--- a/kleopatra/uiserver/sessiondata.h
++++ b/kleopatra/uiserver/sessiondata.h
+@@ -39,7 +39,9 @@
+
+ #include <QTimer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <map>
+
+
+--- a/kleopatra/uiserver/uiserver.cpp
++++ b/kleopatra/uiserver/uiserver.cpp
+@@ -52,8 +52,10 @@
+ #include <QTimer>
+ #include <QFile>
+
++#ifndef Q_MOC_RUN
+ #include <boost/range/empty.hpp>
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/uiserver/uiserver.h
++++ b/kleopatra/uiserver/uiserver.h
+@@ -37,7 +37,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cstdio>
+
+
+--- a/kleopatra/uiserver/uiserver_p.h
++++ b/kleopatra/uiserver/uiserver_p.h
+@@ -44,7 +44,9 @@
+
+ #include <kleo-assuan.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <vector>
+
+--- a/kleopatra/utils/archivedefinition.cpp
++++ b/kleopatra/utils/archivedefinition.cpp
+@@ -55,7 +55,9 @@
+ #include <QMutex>
+ #include <QCoreApplication>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ using namespace GpgME;
+ using namespace Kleo;
+
+--- a/kleopatra/utils/cached.h
++++ b/kleopatra/utils/cached.h
+@@ -33,7 +33,9 @@
+ #ifndef __KLEOPATRA_UTILS_CACHED_H__
+ #define __KLEOPATRA_UTILS_CACHED_H__
+
++#ifndef Q_MOC_RUN
+ #include <boost/call_traits.hpp>
++#endif
+
+ namespace Kleo {
+
+
+--- a/kleopatra/utils/classify.cpp
++++ b/kleopatra/utils/classify.cpp
+@@ -43,7 +43,9 @@
+ #include <QtAlgorithms>
+ #include <QByteArrayMatcher>
+
++#ifndef Q_MOC_RUN
+ #include <boost/range.hpp>
++#endif
+
+ #ifdef __GLIBCXX__
+ # include <ext/algorithm>
+
+--- a/kleopatra/utils/detail_p.h
++++ b/kleopatra/utils/detail_p.h
+@@ -35,7 +35,9 @@
+
+ #include <kleo-assuan.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <QByteArray>
+
+
+--- a/kleopatra/utils/filesystemwatcher.cpp
++++ b/kleopatra/utils/filesystemwatcher.cpp
+@@ -44,7 +44,9 @@
+
+ #include <kleo/stl_util.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <set>
+ #include <cassert>
+
+--- a/kleopatra/utils/input.h
++++ b/kleopatra/utils/input.h
+@@ -35,7 +35,9 @@
+
+ #include <kleo-assuan.h> // for assuan_fd_t
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QIODevice;
+ class QString;
+
+--- a/kleopatra/utils/iodevicelogger.h
++++ b/kleopatra/utils/iodevicelogger.h
+@@ -37,7 +37,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ namespace Kleo {
+
+
+--- a/kleopatra/utils/kleo_assert.h
++++ b/kleopatra/utils/kleo_assert.h
+@@ -35,7 +35,9 @@
+
+ #include <kleo/exception.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/preprocessor/stringize.hpp>
++#endif
+
+ #include <assert.h>
+
+
+--- a/kleopatra/utils/log.cpp
++++ b/kleopatra/utils/log.cpp
+@@ -45,7 +45,9 @@
+ #include <QFile>
+ #include <QString>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+ #include <cassert>
+ #include <cstdio>
+
+
+--- a/kleopatra/utils/log.h
++++ b/kleopatra/utils/log.h
+@@ -36,7 +36,9 @@
+ #include <utils/pimpl_ptr.h>
+
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <cstdio>
+
+
+--- a/kleopatra/utils/multivalidator.cpp
++++ b/kleopatra/utils/multivalidator.cpp
+@@ -36,8 +36,10 @@
+
+ #include <kleo/stl_util.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/lambda/lambda.hpp>
+ #include <boost/lambda/bind.hpp>
++#endif
+
+ #include <vector>
+ #include <iterator>
+
+--- a/kleopatra/utils/output.h
++++ b/kleopatra/utils/output.h
+@@ -37,7 +37,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QIODevice;
+ class QString;
+
+--- a/kleopatra/utils/path-helper.cpp
++++ b/kleopatra/utils/path-helper.cpp
+@@ -46,7 +46,9 @@
+ #include <QFileInfo>
+ #include <QDir>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+
+
+--- a/kleopatra/utils/types.cpp
++++ b/kleopatra/utils/types.cpp
+@@ -38,8 +38,10 @@
+ #include <QWidget>
+ #include <QVector>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #ifdef Q_OS_WIN
+ #include <windows.h>
+
+--- a/kleopatra/view/keylistcontroller.cpp
++++ b/kleopatra/view/keylistcontroller.cpp
+@@ -83,7 +83,9 @@
+ #include <QItemSelectionModel>
+ #include <QAction>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <algorithm>
+ #include <cassert>
+
+--- a/kleopatra/view/keytreeview.h
++++ b/kleopatra/view/keytreeview.h
+@@ -39,7 +39,9 @@
+
+ #include <gpgme++/key.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+ #include <vector>
+
+ class QTreeView;
+
+--- a/kleopatra/view/searchbar.h
++++ b/kleopatra/view/searchbar.h
+@@ -37,7 +37,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class KLineEdit;
+
+
+--- a/kleopatra/view/tabwidget.h
++++ b/kleopatra/view/tabwidget.h
+@@ -39,7 +39,9 @@
+
+ #include <utils/pimpl_ptr.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QAbstractItemView;
+
+
+--- a/libkleo/backends/qgpgme/qgpgmedecryptjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmedecryptjob.cpp
+@@ -40,7 +40,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmedecryptverifyjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmedecryptverifyjob.cpp
+@@ -43,7 +43,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmedownloadjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmedownloadjob.cpp
+@@ -39,7 +39,9 @@
+
+ #include <QStringList>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmeencryptjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmeencryptjob.cpp
+@@ -42,7 +42,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmenewcryptoconfig.cpp
++++ b/libkleo/backends/qgpgme/qgpgmenewcryptoconfig.cpp
+@@ -41,9 +41,11 @@
+ #include <gpgme++/global.h>
+ #include <gpgme++/error.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/foreach.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <sstream>
+ #include <string>
+
+--- a/libkleo/backends/qgpgme/qgpgmenewcryptoconfig.h
++++ b/libkleo/backends/qgpgme/qgpgmenewcryptoconfig.h
+@@ -44,9 +44,11 @@
+
+ #include <gpgme++/configuration.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/weak_ptr.hpp>
+ #include <boost/enable_shared_from_this.hpp>
++#endif
+
+ #include <vector>
+ #include <utility>
+
+--- a/libkleo/backends/qgpgme/qgpgmeprogresstokenmapper.cpp
++++ b/libkleo/backends/qgpgme/qgpgmeprogresstokenmapper.cpp
+@@ -37,7 +37,9 @@
+
+ #include <QString>
+
++#ifndef Q_MOC_RUN
+ #include <boost/range.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmesignencryptjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmesignencryptjob.cpp
+@@ -45,7 +45,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmesignjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmesignjob.cpp
+@@ -42,7 +42,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/qgpgmeverifydetachedjob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmeverifydetachedjob.cpp
+@@ -42,7 +42,9 @@
+
+ #include <cassert>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ using namespace Kleo;
+ using namespace GpgME;
+
+--- a/libkleo/backends/qgpgme/qgpgmeverifyopaquejob.cpp
++++ b/libkleo/backends/qgpgme/qgpgmeverifyopaquejob.cpp
+@@ -40,7 +40,9 @@
+
+ #include <QBuffer>
+
++#ifndef Q_MOC_RUN
+ #include <boost/weak_ptr.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/backends/qgpgme/threadedjobmixin.cpp
++++ b/libkleo/backends/qgpgme/threadedjobmixin.cpp
+@@ -40,7 +40,9 @@
+ #include <QStringList>
+ #include <QByteArray>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+
+ #include <algorithm>
+ #include <iterator>
+
+--- a/libkleo/backends/qgpgme/threadedjobmixin.h
++++ b/libkleo/backends/qgpgme/threadedjobmixin.h
+@@ -44,6 +44,7 @@
+ #include <gpgme++/context.h>
+ #include <gpgme++/interfaces/progressprovider.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
+ #include <boost/weak_ptr.hpp>
+ #include <boost/bind.hpp>
+@@ -51,6 +52,7 @@
+ #include <boost/tuple/tuple.hpp>
+ #include <boost/utility/enable_if.hpp>
+ #include <boost/type_traits/is_same.hpp>
++#endif
+
+ #include <cassert>
+
+
+--- a/libkleo/kleo/checksumdefinition.cpp
++++ b/libkleo/kleo/checksumdefinition.cpp
+@@ -51,7 +51,9 @@
+ #include <QMutex>
+ #include <QCoreApplication>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #ifdef stdin
+ # undef stdin // pah..
+
+--- a/libkleo/kleo/decryptjob.h
++++ b/libkleo/kleo/decryptjob.h
+@@ -35,7 +35,9 @@
+
+ #include "job.h"
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QByteArray;
+ class QIODevice;
+
+--- a/libkleo/kleo/decryptverifyjob.h
++++ b/libkleo/kleo/decryptverifyjob.h
+@@ -35,7 +35,9 @@
+
+ #include "job.h"
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QByteArray;
+ class QIODevice;
+
+--- a/libkleo/kleo/encryptjob.h
++++ b/libkleo/kleo/encryptjob.h
+@@ -35,7 +35,9 @@
+
+ #include "job.h"
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/libkleo/kleo/kconfigbasedkeyfilter.cpp
++++ b/libkleo/kleo/kconfigbasedkeyfilter.cpp
+@@ -37,7 +37,9 @@
+ #include <kconfiggroup.h>
+ #include <klocale.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/mem_fn.hpp>
++#endif
+ #include <algorithm>
+
+ using namespace Kleo;
+
+--- a/libkleo/kleo/keyfiltermanager.cpp
++++ b/libkleo/kleo/keyfiltermanager.cpp
+@@ -48,8 +48,10 @@
+ #include <QAbstractListModel>
+ #include <QModelIndex>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
+ #include <boost/iterator/filter_iterator.hpp>
++#endif
+
+ #include <algorithm>
+ #include <vector>
+
+--- a/libkleo/kleo/keyfiltermanager.h
++++ b/libkleo/kleo/keyfiltermanager.h
+@@ -36,7 +36,9 @@
+ #include "kleo/kleo_export.h"
+ #include <QtCore/QObject>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <kleo/keyfilter.h>
+
+
+--- a/libkleo/kleo/signencryptjob.h
++++ b/libkleo/kleo/signencryptjob.h
+@@ -37,7 +37,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+ #include <utility>
+
+--- a/libkleo/kleo/signjob.h
++++ b/libkleo/kleo/signjob.h
+@@ -37,7 +37,9 @@
+
+ #include <gpgme++/global.h>
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ #include <vector>
+
+
+--- a/libkleo/kleo/stl_util.h
++++ b/libkleo/kleo/stl_util.h
+@@ -22,11 +22,13 @@
+ #ifndef __KDTOOLSCORE_STL_UTIL_H__
+ #define __KDTOOLSCORE_STL_UTIL_H__
+
++#ifndef Q_MOC_RUN
+ #include <boost/range.hpp>
+ #include <boost/iterator/filter_iterator.hpp>
+ #include <boost/iterator/transform_iterator.hpp>
+ #include <boost/call_traits.hpp>
+ #include <boost/version.hpp>
++#endif
+
+ #include <algorithm>
+ #include <numeric>
+
+--- a/libkleo/kleo/verifydetachedjob.h
++++ b/libkleo/kleo/verifydetachedjob.h
+@@ -35,7 +35,9 @@
+
+ #include "job.h"
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QByteArray;
+ class QIODevice;
+
+--- a/libkleo/kleo/verifyopaquejob.h
++++ b/libkleo/kleo/verifyopaquejob.h
+@@ -35,7 +35,9 @@
+
+ #include "job.h"
+
++#ifndef Q_MOC_RUN
+ #include <boost/shared_ptr.hpp>
++#endif
+
+ class QByteArray;
+ class QIODevice;
+
+--- a/libkleo/ui/directoryserviceswidget.cpp
++++ b/libkleo/ui/directoryserviceswidget.cpp
+@@ -45,7 +45,9 @@
+ #include <QMenu>
+ #include <QAction>
+
++#ifndef Q_MOC_RUN
+ #include <boost/bind.hpp>
++#endif
+
+ #include <vector>
+
+
+