Hello community, here is the log from the commit of package libdbusmenu-qt5 for openSUSE:Factory checked in at 2014-09-18 07:57:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libdbusmenu-qt5 (Old) and /work/SRC/openSUSE:Factory/.libdbusmenu-qt5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libdbusmenu-qt5" Changes: -------- --- /work/SRC/openSUSE:Factory/libdbusmenu-qt5/libdbusmenu-qt5.changes 2014-06-04 18:39:00.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libdbusmenu-qt5.new/libdbusmenu-qt5.changes 2014-09-18 07:57:26.000000000 +0200 @@ -1,0 +2,11 @@ +Mon Sep 15 19:31:29 UTC 2014 - hrvoje.senjan@gmail.com + +- Update to 0.9.3+14.10.20140619 + * Users of dbusmenu-qt no longer need to call + include_directories(${dbusmenu-qt5_INCLUDE_DIRS}). + Simply adding dbusmenu-qt5 to the target_link_libraries() + call takes care of defining the include directory. +- Rebase noqDebug-qWarnings.patch +- Added full_include_dir.patch for openSUSE 13.1 + +------------------------------------------------------------------- Old: ---- libdbusmenu-qt_0.9.2+14.04.20131209.orig.tar.gz New: ---- full_include_dir.patch libdbusmenu-qt_0.9.3+14.10.20140619.orig.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libdbusmenu-qt5.spec ++++++ --- /var/tmp/diff_new_pack.zmA6QS/_old 2014-09-18 07:57:27.000000000 +0200 +++ /var/tmp/diff_new_pack.zmA6QS/_new 2014-09-18 07:57:27.000000000 +0200 @@ -19,17 +19,19 @@ %define rname libdbusmenu-qt Name: libdbusmenu-qt5 -Version: 0.9.2+14.04.20131209 +Version: 0.9.3+14.10.20140619 Release: 0 Url: https://launchpad.net/libdbusmenu-qt/ Summary: A Qt implementation of the DBusMenu protocol License: LGPL-2.0+ Group: System/Libraries -Source0: http://archive.ubuntu.com/ubuntu/pool/main/libd/%{rname}/%{rname}_%{version}.orig.tar.gz -Source99: baselibs.conf +Source: http://archive.ubuntu.com/ubuntu/pool/main/libd/%{rname}/%{rname}_%{version}.orig.tar.gz +Source1: baselibs.conf # PATCH-FIX-UPSTREAM noqDebug-qWarnings.patch -- libdbusmenu uses it's own qDebug's and qWarnings, # which are useless, and annoy users, so this patch just disables them in release mode Patch1: noqDebug-qWarnings.patch +# PATCH-FIX-UPSTREAM full_include_dir.patch -- CMake 2.8.12 creates a fatal error on relative include dirs for a target. silence that policy +Patch2: full_include_dir.patch #Needed for DISABLE_FIND_PACKAGE BuildRequires: cmake >= 2.8.6 BuildRequires: doxygen @@ -69,6 +71,9 @@ %prep %setup -q -n %{rname}-%{version} %patch1 -p1 +%if 0%{?suse_version} <= 1310 +%patch2 -p1 +%endif # Remove build time references so build-compare can do its work sed -i "s/HTML_TIMESTAMP = YES/HTML_TIMESTAMP = NO/" Doxyfile.in ++++++ full_include_dir.patch ++++++ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 980e872..fbcd0b1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,7 +95,7 @@ endif() # Make sure linking to the target adds dbusmenu-qt install directory target_include_directories(dbusmenu-${QT_SUFFIX} - INTERFACE "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>") + INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}>") install(TARGETS dbusmenu-${QT_SUFFIX} EXPORT dbusmenu-${QT_SUFFIX}-targets ++++++ libdbusmenu-qt_0.9.2+14.04.20131209.orig.tar.gz -> libdbusmenu-qt_0.9.3+14.10.20140619.orig.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.9.2+14.04.20131209/CMakeLists.txt new/libdbusmenu-qt-0.9.3+14.10.20140619/CMakeLists.txt --- old/libdbusmenu-qt-0.9.2+14.04.20131209/CMakeLists.txt 2013-12-09 03:29:47.000000000 +0100 +++ new/libdbusmenu-qt-0.9.3+14.10.20140619/CMakeLists.txt 2014-06-19 11:07:07.000000000 +0200 @@ -1,5 +1,5 @@ project(dbusmenu-qt) -cmake_minimum_required(VERSION 2.8.0) +cmake_minimum_required(VERSION 2.8.11) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules") # Build options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.9.2+14.04.20131209/src/CMakeLists.txt new/libdbusmenu-qt-0.9.3+14.10.20140619/src/CMakeLists.txt --- old/libdbusmenu-qt-0.9.2+14.04.20131209/src/CMakeLists.txt 2013-12-09 03:29:47.000000000 +0100 +++ new/libdbusmenu-qt-0.9.3+14.10.20140619/src/CMakeLists.txt 2014-06-19 11:07:07.000000000 +0200 @@ -17,6 +17,11 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") endif (__DBUSMENU_HAVE_W_ALL) +check_cxx_compiler_flag(-std=c++11 __DBUSMENU_HAVE_CXX11) +if (__DBUSMENU_HAVE_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +endif (__DBUSMENU_HAVE_CXX11) + # Check whether QIcon::name() exists. It was added in late Qt 4.7 cycle, and is # not present in betas. set(CMAKE_REQUIRED_INCLUDES "${QT_INCLUDE_DIR}") @@ -88,6 +93,10 @@ ) endif() +# Make sure linking to the target adds dbusmenu-qt install directory +target_include_directories(dbusmenu-${QT_SUFFIX} + INTERFACE "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>") + install(TARGETS dbusmenu-${QT_SUFFIX} EXPORT dbusmenu-${QT_SUFFIX}-targets LIBRARY DESTINATION ${LIB_DESTINATION} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.cpp new/libdbusmenu-qt-0.9.3+14.10.20140619/src/dbusmenuimporter.cpp --- old/libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.cpp 2013-12-09 03:29:47.000000000 +0100 +++ new/libdbusmenu-qt-0.9.3+14.10.20140619/src/dbusmenuimporter.cpp 2014-06-19 11:06:47.000000000 +0200 @@ -89,6 +89,8 @@ bool m_mustEmitMenuUpdated; + DBusMenuImporterType m_type; + QDBusPendingCallWatcher *refresh(int id) { #ifdef BENCHMARK @@ -279,9 +281,51 @@ QVariant empty = QVariant::fromValue(QDBusVariant(QString())); m_interface->asyncCall("Event", id, eventId, empty, 0u); } + + bool waitForWatcher(QDBusPendingCallWatcher * _watcher, int maxWait) + { + QPointer<QDBusPendingCallWatcher> watcher(_watcher); + + if(m_type == ASYNCHRONOUS) { + QTimer timer; + timer.setSingleShot(true); + QEventLoop loop; + loop.connect(&timer, SIGNAL(timeout()), SLOT(quit())); + loop.connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), SLOT(quit())); + timer.start(maxWait); + loop.exec(); + timer.stop(); + + if (!watcher) { + // Watcher died. This can happen if importer got deleted while we were + // waiting. See: + // https://bugs.kde.org/show_bug.cgi?id=237156 + return false; + } + + if(!watcher->isFinished()) { + // Timed out + return false; + } + } else { + watcher->waitForFinished(); + } + + if (watcher->isError()) { + DMWARNING << watcher->error().message(); + return false; + } + + return true; + } }; DBusMenuImporter::DBusMenuImporter(const QString &service, const QString &path, QObject *parent) +: DBusMenuImporter(service, path, ASYNCHRONOUS, parent) +{ +} + +DBusMenuImporter::DBusMenuImporter(const QString &service, const QString &path, DBusMenuImporterType type, QObject *parent) : QObject(parent) , d(new DBusMenuImporterPrivate) { @@ -292,6 +336,8 @@ d->m_menu = 0; d->m_mustEmitMenuUpdated = false; + d->m_type = type; + connect(&d->m_mapper, SIGNAL(mapped(int)), SLOT(sendClickedEvent(int))); d->m_pendingLayoutUpdateTimer = new QTimer(this); @@ -443,33 +489,6 @@ QMetaObject::invokeMethod(menu(), "aboutToShow"); } -static bool waitForWatcher(QDBusPendingCallWatcher * _watcher, int maxWait) -{ - QTime time; - time.start(); - QPointer<QDBusPendingCallWatcher> watcher(_watcher); - while (watcher && !watcher->isFinished() && time.elapsed() < maxWait) { - QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); - } - - if (!watcher) { - // Watcher died. This can happen if importer got deleted while we were - // waiting. See: - // https://bugs.kde.org/show_bug.cgi?id=237156 - return false; - } - - // Tricky: watcher has indicated it is finished, but its finished() signal - // has not been emitted yet. Calling waitForFinished() ensures it is - // emitted. - if (watcher->isFinished()) { - watcher->waitForFinished(); - return true; - } else { - return false; - } -} - void DBusMenuImporter::slotMenuAboutToShow() { QMenu *menu = qobject_cast<QMenu*>(sender()); @@ -493,7 +512,7 @@ QPointer<QObject> guard(this); - if (!waitForWatcher(watcher, ABOUT_TO_SHOW_TIMEOUT)) { + if (!d->waitForWatcher(watcher, ABOUT_TO_SHOW_TIMEOUT)) { DMWARNING << "Application did not answer to AboutToShow() before timeout"; } @@ -533,7 +552,7 @@ if (needRefresh || menu->actions().isEmpty()) { d->m_idsRefreshedByAboutToShow << id; watcher = d->refresh(id); - if (!waitForWatcher(watcher, REFRESH_TIMEOUT)) { + if (!d->waitForWatcher(watcher, REFRESH_TIMEOUT)) { DMWARNING << "Application did not refresh before timeout"; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.h new/libdbusmenu-qt-0.9.3+14.10.20140619/src/dbusmenuimporter.h --- old/libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.h 2013-12-09 03:29:47.000000000 +0100 +++ new/libdbusmenu-qt-0.9.3+14.10.20140619/src/dbusmenuimporter.h 2014-06-19 11:06:47.000000000 +0200 @@ -35,6 +35,16 @@ class QMenu; class DBusMenuImporterPrivate; + +/** + * Determine whether internal method calls should allow the Qt event loop + * to execute or not + */ +enum DBusMenuImporterType { + ASYNCHRONOUS, + SYNCHRONOUS +}; + /** * A DBusMenuImporter instance can recreate a menu serialized over DBus by * DBusMenuExporter @@ -48,6 +58,12 @@ */ DBusMenuImporter(const QString &service, const QString &path, QObject *parent = 0); + /** + * Creates a DBusMenuImporter listening over DBus on service, path, with either async + * or sync DBus calls + */ + DBusMenuImporter(const QString &service, const QString &path, DBusMenuImporterType type, QObject *parent = 0); + virtual ~DBusMenuImporter(); /** @@ -121,7 +137,7 @@ friend class DBusMenuImporterPrivate; // Use Q_PRIVATE_SLOT to avoid exposing DBusMenuItemList - Q_PRIVATE_SLOT(d, void slotItemsPropertiesUpdated(const DBusMenuItemList &updatedList, const DBusMenuItemKeysList &removedList)); + Q_PRIVATE_SLOT(d, void slotItemsPropertiesUpdated(const DBusMenuItemList &updatedList, const DBusMenuItemKeysList &removedList)) }; #endif /* DBUSMENUIMPORTER_H */ ++++++ noqDebug-qWarnings.patch ++++++ --- /var/tmp/diff_new_pack.zmA6QS/_old 2014-09-18 07:57:28.000000000 +0200 +++ /var/tmp/diff_new_pack.zmA6QS/_new 2014-09-18 07:57:28.000000000 +0200 @@ -1,7 +1,8 @@ -diff -Naur libdbusmenu-qt-0.9.2+14.04.20131209.orig/CMakeLists.txt libdbusmenu-qt-0.9.2+14.04.20131209/CMakeLists.txt ---- libdbusmenu-qt-0.9.2+14.04.20131209.orig/CMakeLists.txt 2013-12-09 03:29:47.000000000 +0100 -+++ libdbusmenu-qt-0.9.2+14.04.20131209/CMakeLists.txt 2013-12-18 21:58:01.847669366 +0100 -@@ -91,7 +91,7 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0ee9154..597a7de 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -91,7 +91,7 @@ install(FILES ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}.pc add_subdirectory(src) if (NOT USE_QT5) # TODO port tests to Qt5 @@ -10,10 +11,11 @@ endif() add_subdirectory(tools) -diff -Naur libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/dbusmenuexporter.cpp libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuexporter.cpp ---- libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/dbusmenuexporter.cpp 2013-12-09 03:29:47.000000000 +0100 -+++ libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuexporter.cpp 2013-12-18 21:59:13.984767528 +0100 -@@ -160,7 +160,9 @@ +diff --git a/src/dbusmenuexporter.cpp b/src/dbusmenuexporter.cpp +index f25718d..8868efb 100644 +--- a/src/dbusmenuexporter.cpp ++++ b/src/dbusmenuexporter.cpp +@@ -160,7 +160,9 @@ void DBusMenuExporterPrivate::fillLayoutItem(DBusMenuLayoutItem *item, QMenu *me Q_FOREACH(QAction *action, menu->actions()) { int actionId = m_idForAction.value(action, -1); if (actionId == -1) { @@ -23,7 +25,7 @@ continue; } -@@ -185,7 +187,9 @@ +@@ -185,7 +187,9 @@ void DBusMenuExporterPrivate::addAction(QAction *action, int parentId) { int id = m_idForAction.value(action, -1); if (id != -1) { @@ -33,10 +35,21 @@ return; } QVariantMap map = propertiesForAction(action); -diff -Naur libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/dbusmenuimporter.cpp libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.cpp ---- libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/dbusmenuimporter.cpp 2013-12-09 03:29:47.000000000 +0100 -+++ libdbusmenu-qt-0.9.2+14.04.20131209/src/dbusmenuimporter.cpp 2013-12-18 22:06:44.057140849 +0100 -@@ -191,7 +191,9 @@ +diff --git a/src/dbusmenuimporter.cpp b/src/dbusmenuimporter.cpp +index 2a4c514..2f03729 100644 +--- a/src/dbusmenuimporter.cpp ++++ b/src/dbusmenuimporter.cpp +@@ -94,7 +94,9 @@ public: + QDBusPendingCallWatcher *refresh(int id) + { + #ifdef BENCHMARK ++#ifndef QT_NO_DEBUG + DMDEBUG << "Starting refresh chrono for id" << id; ++#endif + sChrono.start(); + #endif + QDBusPendingCall call = m_interface->asyncCall("GetLayout", id, 1, QStringList()); +@@ -193,7 +195,9 @@ public: updateActionShortcut(action, value); } else if (key == "children-display") { } else { @@ -46,7 +59,7 @@ } } -@@ -239,7 +241,9 @@ +@@ -241,7 +245,9 @@ public: action->setProperty(DBUSMENU_PROPERTY_ICON_DATA_HASH, dataHash); QPixmap pix; if (!pix.loadFromData(data)) { @@ -56,7 +69,17 @@ action->setIcon(QIcon()); return; } -@@ -390,7 +394,9 @@ +@@ -312,7 +318,9 @@ public: + } + + if (watcher->isError()) { ++#ifndef QT_NO_DEBUG + DMWARNING << watcher->error().message(); ++#endif + return false; + } + +@@ -436,18 +444,24 @@ void DBusMenuImporter::slotGetLayoutFinished(QDBusPendingCallWatcher *watcher) QDBusPendingReply<uint, DBusMenuLayoutItem> reply = *watcher; if (!reply.isValid()) { @@ -66,7 +89,12 @@ return; } -@@ -401,7 +407,9 @@ + #ifdef BENCHMARK ++#ifndef QT_NO_DEBUG + DMDEBUG << "- items received:" << sChrono.elapsed() << "ms"; ++#endif + #endif + DBusMenuLayoutItem rootItem = reply.argumentAt<1>(); QMenu *menu = d->menuForId(parentId); if (!menu) { @@ -76,17 +104,27 @@ return; } -@@ -494,7 +502,9 @@ +@@ -474,7 +488,9 @@ void DBusMenuImporter::slotGetLayoutFinished(QDBusPendingCallWatcher *watcher) + } + } + #ifdef BENCHMARK ++#ifndef QT_NO_DEBUG + DMDEBUG << "- Menu filled:" << sChrono.elapsed() << "ms"; ++#endif + #endif + } + +@@ -513,7 +529,9 @@ void DBusMenuImporter::slotMenuAboutToShow() QPointer<QObject> guard(this); - if (!waitForWatcher(watcher, ABOUT_TO_SHOW_TIMEOUT)) { + if (!d->waitForWatcher(watcher, ABOUT_TO_SHOW_TIMEOUT)) { +#ifndef QT_NO_DEBUG DMWARNING << "Application did not answer to AboutToShow() before timeout"; +#endif } #ifdef BENCHMARK -@@ -522,7 +532,9 @@ +@@ -541,7 +559,9 @@ void DBusMenuImporter::slotAboutToShowDBusCallFinished(QDBusPendingCallWatcher * QDBusPendingReply<bool> reply = *watcher; if (reply.isError()) { @@ -96,19 +134,20 @@ return; } bool needRefresh = reply.argumentAt<0>(); -@@ -534,7 +546,9 @@ +@@ -553,7 +573,9 @@ void DBusMenuImporter::slotAboutToShowDBusCallFinished(QDBusPendingCallWatcher * d->m_idsRefreshedByAboutToShow << id; watcher = d->refresh(id); - if (!waitForWatcher(watcher, REFRESH_TIMEOUT)) { + if (!d->waitForWatcher(watcher, REFRESH_TIMEOUT)) { +#ifndef QT_NO_DEBUG DMWARNING << "Application did not refresh before timeout"; +#endif } } } -diff -Naur libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/debug_p.h libdbusmenu-qt-0.9.2+14.04.20131209/src/debug_p.h ---- libdbusmenu-qt-0.9.2+14.04.20131209.orig/src/debug_p.h 2013-12-09 03:29:47.000000000 +0100 -+++ libdbusmenu-qt-0.9.2+14.04.20131209/src/debug_p.h 2013-12-18 22:02:33.923267953 +0100 +diff --git a/src/debug_p.h b/src/debug_p.h +index bff37bd..ecdd3a5 100644 +--- a/src/debug_p.h ++++ b/src/debug_p.h @@ -36,12 +36,10 @@ #define DMVAR(var) DMDEBUG << #var ":" << var -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org