diff -Nru qtbase-opensource-src-5.7.1+dfsg/debian/changelog qtbase-opensource-src-5.7.1+dfsg/debian/changelog --- qtbase-opensource-src-5.7.1+dfsg/debian/changelog 2017-01-30 10:02:08.000000000 +0100 +++ qtbase-opensource-src-5.7.1+dfsg/debian/changelog 2017-02-07 15:52:24.000000000 +0100 @@ -1,3 +1,12 @@ +qtbase-opensource-src (5.7.1+dfsg-2ubuntu3~2ubuntu1) UNRELEASED; urgency=medium + + * debian/patch/qdbus-tray-icon-use-runtimedir.patch: + - QDBusTrayIcon: try use runtime or cache for icons (LP: #1600136) + * debian/patch/qdbus-tray-icon-always-save-icon-in-unity.patch: + - QDBusTrayIcon: always save the temp icon in Unity (LP: #1600136) + + -- Marco Trevisan (TreviƱo) Tue, 07 Feb 2017 15:49:44 +0100 + qtbase-opensource-src (5.7.1+dfsg-2ubuntu3~2) zesty; urgency=medium [ Dmitry Shachnev ] diff -Nru qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-always-save-icon-in-unity.patch qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-always-save-icon-in-unity.patch --- qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-always-save-icon-in-unity.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-always-save-icon-in-unity.patch 2017-02-07 15:48:34.000000000 +0100 @@ -0,0 +1,43 @@ +Description: QDBusTrayIcon: always save the temp icon in Unity +Author: Marco Trevisan +Bug-Ubuntu: 1600136 +Forwarded: yes +Applied-Upstream: http://code.qt.io/cgit/qt/qtbase.git/commit/?id=b934572 + + +From b934572b30ca64ea0f85dffaeb9ff3c30add1e7e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Fri, 13 Jan 2017 17:40:56 +0100 +Subject: QDBusTrayIcon: always save the temp icon in Unity + +We enforce the check of saving the icon when the indicator +process name isn't available (as we might be running in a +confined world), but we're running in Unity. + +Change-Id: I80d3be1a8c6eba8c391364260746e78cf89a5b98 +Reviewed-by: Dmitry Shachnev +Reviewed-by: Shawn Rutledge +--- + src/platformsupport/dbustray/qdbustrayicon.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp +index 5c4157c..b55ace3 100644 +--- a/src/platformsupport/dbustray/qdbustrayicon.cpp ++++ b/src/platformsupport/dbustray/qdbustrayicon.cpp +@@ -171,6 +171,12 @@ QTemporaryFile *QDBusTrayIcon::tempIcon(const QIcon &icon) + uint pid = session.interface()->servicePid(KDEWatcherService).value(); + QString processName = QLockFilePrivate::processNameByPid(pid); + necessary = processName.endsWith(QLatin1String("indicator-application-service")); ++ if (!necessary && QGuiApplication::desktopSettingsAware()) { ++ // Accessing to process name might be not allowed if the application ++ // is confined, thus we can just rely on the current desktop in use ++ const QPlatformServices *services = QGuiApplicationPrivate::platformIntegration()->services(); ++ necessary = services->desktopEnvironment().split(':').contains("UNITY"); ++ } + necessity_checked = true; + } + if (!necessary) +-- +cgit v1.0-4-g1e03 + diff -Nru qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-use-runtimedir.patch qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-use-runtimedir.patch --- qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-use-runtimedir.patch 1970-01-01 01:00:00.000000000 +0100 +++ qtbase-opensource-src-5.7.1+dfsg/debian/patches/qdbus-tray-icon-use-runtimedir.patch 2017-02-07 15:49:17.000000000 +0100 @@ -0,0 +1,66 @@ +Description: QDBusTrayIcon: try use runtime or cache for icons +Author: Marco Trevisan +Bug-Ubuntu: 1600136 +Forwarded: yes +Applied-Upstream: http://code.qt.io/cgit/qt/qtbase.git/commit/?id=e1c93cc74 + + +From e1c93cc74b43d8c49208b38dde824298590ac788 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Fri, 13 Jan 2017 17:17:14 +0100 +Subject: QDBusTrayIcon: try use runtime or cache for icons + +It's better to save icons in $XDG_RUNTIME_DIR or +$XDG_CACHE_HOME paths than in $TMPDIR as these +places are readable from the desktop environment +when an app is ran confined in a sandbox (as in +snap packages) + +Change-Id: I1a3e4c5714f8ea51034d18fb87cead87ed21d6be +Reviewed-by: Shawn Rutledge +Reviewed-by: Dmitry Shachnev +--- + .../themes/genericunix/dbustray/qdbustrayicon.cpp | 25 +++++++++++++++++++++- + 1 file changed, 24 insertions(+), 1 deletion(-) + +diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp +index b55ace3..9baf947 100644 +--- a/src/platformsupport/dbustray/qdbustrayicon.cpp ++++ b/src/platformsupport/dbustray/qdbustrayicon.cpp +@@ -65,9 +65,32 @@ QT_BEGIN_NAMESPACE + + Q_LOGGING_CATEGORY(qLcTray, "qt.qpa.tray") + ++static QString iconTempPath() ++{ ++ QString tempPath = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); ++ if (!tempPath.isEmpty()) ++ return tempPath; ++ ++ tempPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation); ++ ++ if (!tempPath.isEmpty()) { ++ QDir tempDir(tempPath); ++ if (tempDir.exists()) ++ return tempPath; ++ ++ if (tempDir.mkpath(QStringLiteral("."))) { ++ const QFile::Permissions permissions = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner; ++ if (QFile(tempPath).setPermissions(permissions)) ++ return tempPath; ++ } ++ } ++ ++ return QDir::tempPath(); ++} ++ + static const QString KDEItemFormat = QStringLiteral("org.kde.StatusNotifierItem-%1-%2"); + static const QString KDEWatcherService = QStringLiteral("org.kde.StatusNotifierWatcher"); +-static const QString TempFileTemplate = QDir::tempPath() + QLatin1String("/qt-trayicon-XXXXXX.png"); ++static const QString TempFileTemplate = iconTempPath() + QLatin1String("/qt-trayicon-XXXXXX.png"); + static const QString XdgNotificationService = QStringLiteral("org.freedesktop.Notifications"); + static const QString XdgNotificationPath = QStringLiteral("/org/freedesktop/Notifications"); + static const QString DefaultAction = QStringLiteral("default"); +-- +cgit v1.0-4-g1e03 + diff -Nru qtbase-opensource-src-5.7.1+dfsg/debian/patches/series qtbase-opensource-src-5.7.1+dfsg/debian/patches/series --- qtbase-opensource-src-5.7.1+dfsg/debian/patches/series 2017-01-30 10:02:08.000000000 +0100 +++ qtbase-opensource-src-5.7.1+dfsg/debian/patches/series 2017-02-07 15:43:06.000000000 +0100 @@ -27,3 +27,5 @@ skip-largefile-test-s390x.patch qnam-ubuntu-fix6.patch #disable_overlay_scrollbars.diff +qdbus-tray-icon-always-save-icon-in-unity.patch +qdbus-tray-icon-use-runtimedir.patch