Hello community, here is the log from the commit of package kcoreaddons for openSUSE:Factory checked in at 2016-11-17 12:28:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kcoreaddons (Old) and /work/SRC/openSUSE:Factory/.kcoreaddons.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcoreaddons" Changes: -------- --- /work/SRC/openSUSE:Factory/kcoreaddons/kcoreaddons.changes 2016-10-28 12:17:30.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kcoreaddons.new/kcoreaddons.changes 2016-11-17 12:28:35.000000000 +0100 @@ -1,0 +2,10 @@ +Sat Nov 5 20:24:14 UTC 2016 - hrvoje.sen...@gmail.com + +- Update to 5.28.0 + * Display bad url + * Load user avatars from AccountsServicePath if it exists + (kde#370362) + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.28.0.php + +------------------------------------------------------------------- Old: ---- kcoreaddons-5.27.0.tar.xz New: ---- kcoreaddons-5.28.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kcoreaddons.spec ++++++ --- /var/tmp/diff_new_pack.iB0Sx2/_old 2016-11-17 12:28:36.000000000 +0100 +++ /var/tmp/diff_new_pack.iB0Sx2/_new 2016-11-17 12:28:36.000000000 +0100 @@ -18,9 +18,9 @@ %bcond_without lang %define lname libKF5CoreAddons5 -%define _tar_path 5.27 +%define _tar_path 5.28 Name: kcoreaddons -Version: 5.27.0 +Version: 5.28.0 Release: 0 BuildRequires: cmake >= 2.8.12 BuildRequires: extra-cmake-modules >= %{_tar_path} ++++++ kcoreaddons-5.27.0.tar.xz -> kcoreaddons-5.28.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/CMakeLists.txt new/kcoreaddons-5.28.0/CMakeLists.txt --- old/kcoreaddons-5.27.0/CMakeLists.txt 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/CMakeLists.txt 2016-11-05 15:44:51.000000000 +0100 @@ -3,7 +3,7 @@ project(KCoreAddons) include(FeatureSummary) -find_package(ECM 5.27.0 NO_MODULE) +find_package(ECM 5.28.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -46,7 +46,7 @@ include(ECMPoQmTools) -set(KF5_VERSION "5.27.0") # handled by release scripts +set(KF5_VERSION "5.28.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KCOREADDONS VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/autotests/ktexttohtmltest.cpp new/kcoreaddons-5.28.0/autotests/ktexttohtmltest.cpp --- old/kcoreaddons-5.27.0/autotests/ktexttohtmltest.cpp 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/autotests/ktexttohtmltest.cpp 2016-11-05 15:44:51.000000000 +0100 @@ -390,8 +390,27 @@ //Fix url exploit QTest::newRow("url-exec-html") << "https://\"><!--" << KTextToHTML::Options(KTextToHTML::PreserveSpaces) - << "https://\"><!--"; + << "https://"><!--"; + QTest::newRow("url-exec-html-2") << "https://192.168.1.1:\"><!--" + << KTextToHTML::Options(KTextToHTML::PreserveSpaces) + << "https://192.168.1.1:"><!--"; + + QTest::newRow("url-exec-html-3") << "https://<IP>:\"><!--" + << KTextToHTML::Options(KTextToHTML::PreserveSpaces) + << "https://<IP>:"><!--"; + + QTest::newRow("url-exec-html-4") << "https://<IP>:/\"><!--" + << KTextToHTML::Options(KTextToHTML::PreserveSpaces) + << "https://<IP>:/"><!--"; + + QTest::newRow("url-exec-html-5") << "https://<IP>:/\"><script>alert(1);</script><!--" + << KTextToHTML::Options(KTextToHTML::PreserveSpaces) + << "https://<IP>:/"><script>alert(1);</script><!--"; + + QTest::newRow("url-exec-html-6") << "https://<IP>:/\"><script>alert(1);</script><!--\nTest2" + << KTextToHTML::Options(KTextToHTML::PreserveSpaces) + << "https://<IP>:/"><script>alert(1);</script><!--\nTest2"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/po/el/kcoreaddons5_qt.po new/kcoreaddons-5.28.0/po/el/kcoreaddons5_qt.po --- old/kcoreaddons-5.27.0/po/el/kcoreaddons5_qt.po 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/po/el/kcoreaddons5_qt.po 2016-11-05 15:44:51.000000000 +0100 @@ -21,7 +21,7 @@ "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2014-03-23 01:50+0000\n" -"PO-Revision-Date: 2016-09-28 13:50+0200\n" +"PO-Revision-Date: 2016-11-04 17:38+0200\n" "Last-Translator: Dimitris Kardarakos <dimk...@gmail.com>\n" "Language-Team: Greek <kde-i18n...@kde.org>\n" "Language: el\n" @@ -558,20 +558,16 @@ msgstr "Χθες" #: lib/util/kformatprivate.cpp:383 -#, fuzzy, qt-format -#| msgctxt "@option last week" -#| msgid "Last Week" +#, qt-format msgctxt "KFormat|" msgid "Last %1" msgstr "Τελευταία %1" #: lib/util/kformatprivate.cpp:388 -#, fuzzy, qt-format -#| msgctxt "Opposite to Back" -#| msgid "Next" +#, qt-format msgctxt "KFormat|" msgid "Next %1" -msgstr "Επόμενο" +msgstr "Επόμενα %1" #. relative datetime with %1 result of formatReleativeDate() and %2 the formatted time If this does not fit the grammar of your language please contact the i18n team to solve the problem #: lib/util/kformatprivate.cpp:402 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/po/ko/kcoreaddons5_qt.po new/kcoreaddons-5.28.0/po/ko/kcoreaddons5_qt.po --- old/kcoreaddons-5.27.0/po/ko/kcoreaddons5_qt.po 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/po/ko/kcoreaddons5_qt.po 2016-11-05 15:44:51.000000000 +0100 @@ -2,15 +2,15 @@ # Copyright (C) Free Software Foundation, Inc. # Cho Sung Jae <cho.sung...@gmail.com>, 2007. # Shinjo Park <k...@peremen.name>, 2007, 2008, 2009, 2010, 2011. -# Shinjo Park <k...@peremen.name>, 2011, 2012, 2013, 2014, 2015. +# Shinjo Park <k...@peremen.name>, 2011, 2012, 2013, 2014, 2015, 2016. # msgid "" msgstr "" "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2014-03-23 01:50+0000\n" -"PO-Revision-Date: 2015-11-07 00:27+0100\n" -"Last-Translator: Shinjo Park <pere...@gmail.com>\n" +"PO-Revision-Date: 2016-10-20 23:14+0100\n" +"Last-Translator: Shinjo Park <k...@peremen.name>\n" "Language-Team: Korean <k...@peremen.name>\n" "Language: ko\n" "MIME-Version: 1.0\n" @@ -104,23 +104,17 @@ #: lib/kaboutdata.cpp:315 msgctxt "KAboutLicense|@item license" msgid "GNU Lesser General Public License Version 3" -msgstr "GNU 일반 공중 라이선스 버전 3" +msgstr "GNU 일반 약소 공중 라이선스 버전 3" #: lib/kaboutdata.cpp:318 -#, fuzzy -#| msgctxt "KAboutLicense|@item license (short name)" -#| msgid "LGPL v2" msgctxt "KAboutLicense|@item license (short name)" msgid "LGPL v2.1" -msgstr "LGPL v2" +msgstr "LGPL v2.1" #: lib/kaboutdata.cpp:319 -#, fuzzy -#| msgctxt "KAboutLicense|@item license" -#| msgid "GNU Lesser General Public License Version 2" msgctxt "KAboutLicense|@item license" msgid "GNU Lesser General Public License Version 2.1" -msgstr "GNU 일반 공중 라이선스 버전 2" +msgstr "GNU 일반 약소 공중 라이선스 버전 2.1" #: lib/kaboutdata.cpp:323 msgctxt "KAboutLicense|@item license" @@ -172,12 +166,10 @@ msgstr "이 프로그램은 익명으로 남기 위한 사람이 작성했습니다." #: lib/kaboutdata.cpp:1069 -#, fuzzy, qt-format -#| msgctxt "KAboutData CLI|" -#| msgid "%s was written by:\n" +#, qt-format msgctxt "KAboutData CLI|" msgid "%1 was written by:" -msgstr "%s 프로그램의 작성자:\n" +msgstr "%1 프로그램의 작성자:" #: lib/kaboutdata.cpp:1080 msgctxt "KAboutData CLI|" @@ -185,12 +177,10 @@ msgstr "http://bugs.kde.org 에 버그를 보고해 주십시오." #: lib/kaboutdata.cpp:1082 -#, fuzzy, qt-format -#| msgctxt "KAboutData CLI|" -#| msgid "Please report bugs to %s.\n" +#, qt-format msgctxt "KAboutData CLI|" msgid "Please report bugs to %1." -msgstr "%s(으)로 버그를 보고해 주십시오.\n" +msgstr "%1(으)로 버그를 보고해 주십시오." #: lib/plugin/kpluginloader.cpp:122 #, qt-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/po/nn/kcoreaddons5_qt.po new/kcoreaddons-5.28.0/po/nn/kcoreaddons5_qt.po --- old/kcoreaddons-5.27.0/po/nn/kcoreaddons5_qt.po 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/po/nn/kcoreaddons5_qt.po 2016-11-05 15:44:51.000000000 +0100 @@ -9,7 +9,7 @@ "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2014-02-28 03:44+0000\n" -"PO-Revision-Date: 2016-04-24 21:22+0100\n" +"PO-Revision-Date: 2016-10-15 09:02+0100\n" "Last-Translator: Karl Ove Hufthammer <k...@huftis.org>\n" "Language-Team: Norwegian Nynorsk <i18n...@lister.ping.uio.no>\n" "Language: nn\n" @@ -113,12 +113,12 @@ #: lib/kaboutdata.cpp:318 msgctxt "KAboutLicense|@item license (short name)" msgid "LGPL v2.1" -msgstr "" +msgstr "LGPL v2.1" #: lib/kaboutdata.cpp:319 msgctxt "KAboutLicense|@item license" msgid "GNU Lesser General Public License Version 2.1" -msgstr "" +msgstr "GNU Lesser General Public License versjon 2.1" #: lib/kaboutdata.cpp:323 msgctxt "KAboutLicense|@item license" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/po/zh_CN/kcoreaddons5_qt.po new/kcoreaddons-5.28.0/po/zh_CN/kcoreaddons5_qt.po --- old/kcoreaddons-5.27.0/po/zh_CN/kcoreaddons5_qt.po 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/po/zh_CN/kcoreaddons5_qt.po 2016-11-05 15:44:51.000000000 +0100 @@ -15,9 +15,9 @@ "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2014-03-23 01:50+0000\n" -"PO-Revision-Date: 2016-04-07 13:44-0800\n" +"PO-Revision-Date: 2016-10-09 20:44-0800\n" "Last-Translator: Weng Xuetian <wen...@gmail.com>\n" -"Language-Team: Chinese <kde-i18n-...@kde.org>\n" +"Language-Team: Chinese <kde-ch...@kde.org>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -113,20 +113,14 @@ msgstr "GNU 较宽松通用公共许可协议版本 3" #: lib/kaboutdata.cpp:318 -#, fuzzy -#| msgctxt "KAboutLicense|@item license (short name)" -#| msgid "LGPL v2" msgctxt "KAboutLicense|@item license (short name)" msgid "LGPL v2.1" -msgstr "LGPL v2" +msgstr "LGPL v2.1" #: lib/kaboutdata.cpp:319 -#, fuzzy -#| msgctxt "KAboutLicense|@item license" -#| msgid "GNU Lesser General Public License Version 2" msgctxt "KAboutLicense|@item license" msgid "GNU Lesser General Public License Version 2.1" -msgstr "GNU 较宽松通用公共许可协议版本 2" +msgstr "GNU 较宽松通用公共许可协议版本 2.1" #: lib/kaboutdata.cpp:323 msgctxt "KAboutLicense|@item license" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/CMakeLists.txt new/kcoreaddons-5.28.0/src/lib/CMakeLists.txt --- old/kcoreaddons-5.27.0/src/lib/CMakeLists.txt 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/src/lib/CMakeLists.txt 2016-11-05 15:44:51.000000000 +0100 @@ -10,6 +10,9 @@ set (KDE4_DEFAULT_HOME ".kde${_KDE4_DEFAULT_HOME_POSTFIX}" CACHE STRING "The default KDE home directory" ) configure_file(util/config-kde4home.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kde4home.h) +set (ACCOUNTS_SERVICE_ICON_DIR "/var/lib/AccountsService/icons" CACHE STRING "Accounts Services icon storage directory") +configure_file(util/config-accountsservice.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-accountsservice.h) + ecm_create_qm_loader(kcoreaddons_QM_LOADER kcoreaddons5_qt) set(kcoreaddons_OPTIONAL_SRCS ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/caching/kshareddatacache_p.h new/kcoreaddons-5.28.0/src/lib/caching/kshareddatacache_p.h --- old/kcoreaddons-5.27.0/src/lib/caching/kshareddatacache_p.h 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/src/lib/caching/kshareddatacache_p.h 2016-11-05 15:44:51.000000000 +0100 @@ -78,6 +78,10 @@ #if defined(_POSIX_ADVISORY_INFO) && ((_POSIX_ADVISORY_INFO == 0) || (_POSIX_ADVISORY_INFO >= 200112L)) #define KSDC_POSIX_FALLOCATE_SUPPORTED 1 #endif +#ifdef Q_OS_OSX +#include "posix_fallocate_mac.h" +#define KSDC_POSIX_FALLOCATE_SUPPORTED 1 +#endif // BSD/Mac OS X compat #if HAVE_SYS_MMAN_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/caching/posix_fallocate_mac.h new/kcoreaddons-5.28.0/src/lib/caching/posix_fallocate_mac.h --- old/kcoreaddons-5.27.0/src/lib/caching/posix_fallocate_mac.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kcoreaddons-5.28.0/src/lib/caching/posix_fallocate_mac.h 2016-11-05 15:44:51.000000000 +0100 @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla code. + * + * The Initial Developer of the Original Code is + * Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Taras Glek <tg...@mozilla.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include <fcntl.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> + +// created from the OSX-specific code from Mozilla's mozilla::fallocation() function +// of which the licensing information is copied above. +// Adaptation (C) 2015,2016 R.J.V. Bertin + + +// From Linux `man posix_fallocate`: +// DESCRIPTION +// The function posix_fallocate() ensures that disk space is allocated for +// the file referred to by the descriptor fd for the bytes in the range +// starting at offset and continuing for len bytes. After a successful +// call to posix_fallocate(), subsequent writes to bytes in the specified +// range are guaranteed not to fail because of lack of disk space. +// +// If the size of the file is less than offset+len, then the file is +// increased to this size; otherwise the file size is left unchanged. + +// From OS X man fcntl: +// F_PREALLOCATE Preallocate file storage space. Note: upon success, the space +// that is allocated can be the same size or larger than the space +// requested. +// The F_PREALLOCATE command operates on the following structure: +// typedef struct fstore { +// u_int32_t fst_flags; /* IN: flags word */ +// int fst_posmode; /* IN: indicates offset field */ +// off_t fst_offset; /* IN: start of the region */ +// off_t fst_length; /* IN: size of the region */ +// off_t fst_bytesalloc; /* OUT: number of bytes allocated */ +// } fstore_t; +// The flags (fst_flags) for the F_PREALLOCATE command are as follows: +// F_ALLOCATECONTIG Allocate contiguous space. +// F_ALLOCATEALL Allocate all requested space or no space at all. +// The position modes (fst_posmode) for the F_PREALLOCATE command indicate how to use +// the offset field. The modes are as follows: +// F_PEOFPOSMODE Allocate from the physical end of file. +// F_VOLPOSMODE Allocate from the volume offset. + +// From OS X man ftruncate: +// DESCRIPTION +// ftruncate() and truncate() cause the file named by path, or referenced by fildes, to +// be truncated (or extended) to length bytes in size. If the file size exceeds length, +// any extra data is discarded. If the file size is smaller than length, the file +// extended and filled with zeros to the indicated length. The ftruncate() form requires +// the file to be open for writing. +// Note: ftruncate() and truncate() do not modify the current file offset for any open +// file descriptions associated with the file. + + +static int posix_fallocate(int fd, off_t offset, off_t len) +{ + off_t c_test; + int ret; + if (!__builtin_saddll_overflow(offset, len, &c_test)) { + fstore_t store = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, offset + len}; + // Try to get a continous chunk of disk space + fcntl(fd, F_PREALLOCATE, &store); + if (ret < 0) { + // OK, perhaps we are too fragmented, allocate non-continuous + store.fst_flags = F_ALLOCATEALL; + ret = fcntl(fd, F_PREALLOCATE, &store); + if (ret < 0) { + return ret; + } + } + ret = ftruncate(fd, offset + len); + } else { + // offset+len would overflow. + ret = -1; + } + return ret; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/text/ktexttohtml.cpp new/kcoreaddons-5.28.0/src/lib/text/ktexttohtml.cpp --- old/kcoreaddons-5.27.0/src/lib/text/ktexttohtml.cpp 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/src/lib/text/ktexttohtml.cpp 2016-11-05 15:44:51.000000000 +0100 @@ -423,7 +423,23 @@ bool badUrl = false; str = helper.getUrl(&badUrl); if (badUrl) { - return helper.mText; + QString resultBadUrl; + const int helperTextSize(helper.mText.count()); + for (int i = 0; i < helperTextSize; ++i) { + const QChar chBadUrl = helper.mText[i]; + if (chBadUrl == QLatin1Char('&')) { + resultBadUrl += QLatin1String("&"); + } else if (chBadUrl == QLatin1Char('"')) { + resultBadUrl += QLatin1String("""); + } else if (chBadUrl == QLatin1Char('<')) { + resultBadUrl += QLatin1String("<"); + } else if (chBadUrl == QLatin1Char('>')) { + resultBadUrl += QLatin1String(">"); + } else { + resultBadUrl += chBadUrl; + } + } + return resultBadUrl; } if (!str.isEmpty()) { QString hyperlink; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/util/config-accountsservice.h.cmake new/kcoreaddons-5.28.0/src/lib/util/config-accountsservice.h.cmake --- old/kcoreaddons-5.27.0/src/lib/util/config-accountsservice.h.cmake 1970-01-01 01:00:00.000000000 +0100 +++ new/kcoreaddons-5.28.0/src/lib/util/config-accountsservice.h.cmake 2016-11-05 15:44:51.000000000 +0100 @@ -0,0 +1 @@ +#define ACCOUNTS_SERVICE_ICON_DIR "${ACCOUNTS_SERVICE_ICON_DIR}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcoreaddons-5.27.0/src/lib/util/kuser_unix.cpp new/kcoreaddons-5.28.0/src/lib/util/kuser_unix.cpp --- old/kcoreaddons-5.27.0/src/lib/util/kuser_unix.cpp 2016-10-02 11:46:45.000000000 +0200 +++ new/kcoreaddons-5.28.0/src/lib/util/kuser_unix.cpp 2016-11-05 15:44:51.000000000 +0100 @@ -21,6 +21,7 @@ #include "kuser.h" #include "config-getgrouplist.h" +#include "config-accountsservice.h" #include <QtCore/QMutableStringListIterator> #include <QtCore/QDir> @@ -183,7 +184,13 @@ QString KUser::faceIconPath() const { - QString pathToFaceIcon(homeDir() + QDir::separator() + QStringLiteral(".face.icon")); + QString pathToFaceIcon(QStringLiteral(ACCOUNTS_SERVICE_ICON_DIR) + QLatin1Char('/') + d->loginName); + + if (QFile::exists(pathToFaceIcon)) { + return pathToFaceIcon; + } + + pathToFaceIcon = QString(homeDir() + QLatin1Char('/') + QStringLiteral(".face.icon")); if (QFile::exists(pathToFaceIcon)) { return pathToFaceIcon;