Hello community,

here is the log from the commit of package kwindowsystem for openSUSE:Factory 
checked in at 2019-08-19 21:17:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old)
 and      /work/SRC/openSUSE:Factory/.kwindowsystem.new.22127 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwindowsystem"

Mon Aug 19 21:17:37 2019 rev:73 rq:722498 version:5.61.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes      
2019-07-26 12:21:18.710555726 +0200
+++ /work/SRC/openSUSE:Factory/.kwindowsystem.new.22127/kwindowsystem.changes   
2019-08-19 21:18:17.188757250 +0200
@@ -1,0 +2,17 @@
+Wed Aug  7 17:51:51 UTC 2019 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.61.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.61.0.php
+- Changes since 5.60.0:
+  * [platforms/xcb] Use XRES extension to get real window PID (kde#384837) 
+  * Fix failing autotest 
+  * Port KXMessages away from QWidget
+
+-------------------------------------------------------------------
+Fri Jul 19 11:45:42 UTC 2019 - Wolfgang Bauer <[email protected]>
+
+- Don't lower minimum Qt version anymore, it requires 5.11 now
+
+-------------------------------------------------------------------

Old:
----
  kwindowsystem-5.60.0.tar.xz

New:
----
  frameworks.keyring
  kwindowsystem-5.61.0.tar.xz
  kwindowsystem-5.61.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.wP2QVP/_old  2019-08-19 21:18:20.160756647 +0200
+++ /var/tmp/diff_new_pack.wP2QVP/_new  2019-08-19 21:18:20.176756643 +0200
@@ -17,21 +17,25 @@
 
 
 %define lname   libKF5WindowSystem5
-%define _tar_path 5.60
+%define _tar_path 5.61
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without lang
 Name:           kwindowsystem
-Version:        5.60.0
+Version:        5.61.0
 Release:        0
 Summary:        KDE Access to window manager
 License:        LGPL-2.1-or-later
 Group:          System/GUI/KDE
 URL:            https://www.kde.org
-Source:         
http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz
-Source1:        baselibs.conf
+Source:         
https://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz
+%if %{with lang}
+Source1:        
https://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz.sig
+Source2:        frameworks.keyring
+%endif
+Source99:       baselibs.conf
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_kf5_bugfix_version}
 BuildRequires:  fdupes
@@ -94,9 +98,6 @@
 
 %prep
 %setup -q
-%if 0%{?suse_version} == 1500
-sed -i -e "s/^set *(REQUIRED_QT_VERSION 5.10.0)$/set(REQUIRED_QT_VERSION 
5.9.0)/" CMakeLists.txt
-%endif
 
 %build
   %cmake_kf5 -d build -- -Dlconvert_executable=%{_kf5_libdir}/qt5/bin/lconvert

++++++ kwindowsystem-5.60.0.tar.xz -> kwindowsystem-5.61.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.60.0/CMakeLists.txt 
new/kwindowsystem-5.61.0/CMakeLists.txt
--- old/kwindowsystem-5.60.0/CMakeLists.txt     2019-07-07 20:39:06.000000000 
+0200
+++ new/kwindowsystem-5.61.0/CMakeLists.txt     2019-08-03 21:59:52.000000000 
+0200
@@ -1,15 +1,15 @@
 cmake_minimum_required(VERSION 3.5)
 
-set(KF5_VERSION "5.60.0") # handled by release scripts
+set(KF5_VERSION "5.61.0") # handled by release scripts
 project(KWindowSystem VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.60.0  NO_MODULE)
+find_package(ECM 5.61.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)
 
-set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
+set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
 
 
 include(GenerateExportHeader)
@@ -54,7 +54,7 @@
 set(KWINDOWSYSTEM_HAVE_X11 ${X11_FOUND})
 
 if(X11_FOUND)
-    find_package(XCB COMPONENTS XCB KEYSYMS)
+    find_package(XCB COMPONENTS XCB KEYSYMS RES)
     find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras)
     set_package_properties(X11_Xrender PROPERTIES DESCRIPTION "X Rendering 
Extension (libXrender)"
                            URL "http://www.x.org"; TYPE RECOMMENDED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.60.0/autotests/CMakeLists.txt 
new/kwindowsystem-5.61.0/autotests/CMakeLists.txt
--- old/kwindowsystem-5.60.0/autotests/CMakeLists.txt   2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/autotests/CMakeLists.txt   2019-08-03 
21:59:52.000000000 +0200
@@ -12,12 +12,12 @@
 
 if (NOT APPLE)
     find_package(X11)
-    find_package(XCB COMPONENTS XCB KEYSYMS)
+    find_package(XCB COMPONENTS XCB ICCCM KEYSYMS)
 endif()
 
 macro(KWINDOWSYSTEM_UNIT_TESTS)
    foreach(_testname ${ARGN})
-      set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras 
XCB::KEYSYMS)
+      set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras 
XCB::ICCCM XCB::KEYSYMS)
       if(X11_FOUND)
          list(APPEND libs ${XCB_XCB_LIBRARY})
       endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.60.0/autotests/kwindowinfox11test.cpp 
new/kwindowsystem-5.61.0/autotests/kwindowinfox11test.cpp
--- old/kwindowsystem-5.60.0/autotests/kwindowinfox11test.cpp   2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/autotests/kwindowinfox11test.cpp   2019-08-03 
21:59:52.000000000 +0200
@@ -25,8 +25,11 @@
 #include <qtest_widgets.h>
 #include <QScreen>
 #include <QSignalSpy>
+#include <QSysInfo>
 #include <QX11Info>
 
+#include <xcb/xcb_icccm.h>
+
 #include <unistd.h>
 
 Q_DECLARE_METATYPE(WId)
@@ -598,19 +601,23 @@
 
 void KWindowInfoX11Test::testClientMachine()
 {
+    const QByteArray oldHostName = QSysInfo::machineHostName().toLocal8Bit();
+
     KWindowInfo info(window->winId(), NET::Properties(), 
NET::WM2ClientMachine);
-    QVERIFY(info.clientMachine().isNull());
+    QCOMPARE(info.clientMachine(), oldHostName);
 
     // client machine needs to be set through xcb
+    const QByteArray newHostName = oldHostName + "2";
     xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, 
window->winId(),
-                        XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, 9, 
"localhost");
+                        XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, 
newHostName.count(),
+                        newHostName.data());
     xcb_flush(QX11Info::connection());
 
     // it's just a property change so we can easily refresh
     QX11Info::getTimestamp();
 
     KWindowInfo info2(window->winId(), NET::Properties(), 
NET::WM2ClientMachine);
-    QCOMPARE(info2.clientMachine(), QByteArrayLiteral("localhost"));
+    QCOMPARE(info2.clientMachine(), newHostName);
 }
 
 void KWindowInfoX11Test::testName()
@@ -680,11 +687,25 @@
 
 void KWindowInfoX11Test::testGroupLeader()
 {
-    KWindowInfo info(window->winId(), NET::Properties(), NET::WM2GroupLeader);
-    QCOMPARE(info.groupLeader(), WId(0));
+    // WM_CLIENT_LEADER is set by default
+    KWindowInfo info1(window->winId(), NET::Properties(), NET::WM2GroupLeader);
+    QVERIFY(info1.groupLeader() != XCB_WINDOW_NONE);
+
+    xcb_connection_t *connection = QX11Info::connection();
+    xcb_window_t rootWindow = QX11Info::appRootWindow();
+
+    xcb_window_t leader = xcb_generate_id(connection);
+    xcb_create_window(connection, XCB_COPY_FROM_PARENT, leader, rootWindow, 0, 
0, 1, 1,
+        0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, 0, nullptr);
+
+    xcb_icccm_wm_hints_t hints = {};
+    hints.flags = XCB_ICCCM_WM_HINT_WINDOW_GROUP;
+    hints.window_group = leader;
+    xcb_icccm_set_wm_hints(connection, leader, &hints);
+    xcb_icccm_set_wm_hints(connection, window->winId(), &hints);
 
-    // TODO: here we should try to set a group leader and re-read it
-    // this needs setting and parsing the WMHints
+    KWindowInfo info2(window->winId(), NET::Properties(), NET::WM2GroupLeader);
+    QCOMPARE(info2.groupLeader(), leader);
 }
 
 void KWindowInfoX11Test::testExtendedStrut()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.60.0/po/gl/kwindowsystem5_qt.po 
new/kwindowsystem-5.61.0/po/gl/kwindowsystem5_qt.po
--- old/kwindowsystem-5.60.0/po/gl/kwindowsystem5_qt.po 2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/po/gl/kwindowsystem5_qt.po 2019-08-03 
21:59:52.000000000 +0200
@@ -22,10 +22,6 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 1.5\n"
-"X-Environment: kde, development\n"
-"X-Accelerator-Marker: &\n"
-"X-Text-Markup: kde4\n"
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:578 platforms/windows/kwindowsystem.cpp:630
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.60.0/po/zh_CN/kwindowsystem5_qt.po 
new/kwindowsystem-5.61.0/po/zh_CN/kwindowsystem5_qt.po
--- old/kwindowsystem-5.60.0/po/zh_CN/kwindowsystem5_qt.po      2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/po/zh_CN/kwindowsystem5_qt.po      2019-08-03 
21:59:52.000000000 +0200
@@ -13,7 +13,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2019-06-02 11:52\n"
+"PO-Revision-Date: 2019-07-18 14:57\n"
 "Last-Translator: Guo Yunhe (guoyunhe)\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.60.0/src/platforms/xcb/CMakeLists.txt 
new/kwindowsystem-5.61.0/src/platforms/xcb/CMakeLists.txt
--- old/kwindowsystem-5.60.0/src/platforms/xcb/CMakeLists.txt   2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/src/platforms/xcb/CMakeLists.txt   2019-08-03 
21:59:52.000000000 +0200
@@ -13,6 +13,7 @@
     KF5WindowSystem
     Qt5::X11Extras
     XCB::XCB
+    XCB::RES
     ${X11_LIBRARIES}
     ${X11_Xfixes_LIB}
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.60.0/src/platforms/xcb/kwindowinfo.cpp 
new/kwindowsystem-5.61.0/src/platforms/xcb/kwindowinfo.cpp
--- old/kwindowsystem-5.60.0/src/platforms/xcb/kwindowinfo.cpp  2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/src/platforms/xcb/kwindowinfo.cpp  2019-08-03 
21:59:52.000000000 +0200
@@ -27,6 +27,21 @@
 #include <QX11Info>
 #include <X11/Xatom.h>
 
+#include <xcb/res.h>
+
+static bool haveXRes()
+{
+    static bool s_checked = false;
+    static bool s_haveXRes = false;
+    if (!s_checked) {
+        auto cookie  = xcb_res_query_version(QX11Info::connection(), 
XCB_RES_MAJOR_VERSION, XCB_RES_MINOR_VERSION);
+        QScopedPointer<xcb_res_query_version_reply_t, QScopedPointerPodDeleter 
>reply(xcb_res_query_version_reply(QX11Info::connection(), cookie, nullptr));
+        s_haveXRes = !reply.isNull();
+        s_checked = true;
+    }
+    return s_haveXRes;
+}
+
 // KWindowSystem::info() should be updated too if something has to be changed 
here
 KWindowInfoPrivateX11::KWindowInfoPrivateX11(WId _win, NET::Properties 
properties, NET::Properties2 properties2)
     : KWindowInfoPrivate(_win, properties, properties2)
@@ -75,6 +90,19 @@
         m_frame_geometry.setRect(frame.pos.x, frame.pos.y, frame.size.width, 
frame.size.height);
     }
     m_valid = !handler.error(false);   // no sync - NETWinInfo did roundtrips
+
+    if (haveXRes()) {
+        xcb_res_client_id_spec_t specs;
+        specs.client = win();
+        specs.mask = XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID;
+        auto cookie = xcb_res_query_client_ids(QX11Info::connection(), 1, 
&specs);
+
+        QScopedPointer<xcb_res_query_client_ids_reply_t, 
QScopedPointerPodDeleter> reply( 
xcb_res_query_client_ids_reply(QX11Info::connection(), cookie, nullptr));
+        if (reply && xcb_res_query_client_ids_ids_length(reply.data()) > 0) {
+            uint32_t pid = 
*xcb_res_client_id_value_value((xcb_res_query_client_ids_ids_iterator(reply.data()).data));
+            m_pid = pid;
+        }
+    }
 }
 
 KWindowInfoPrivateX11::~KWindowInfoPrivateX11()
@@ -431,10 +459,18 @@
 
 int KWindowInfoPrivateX11::pid() const
 {
+    // If pid is found using the XRes extension use that instead.
+    // It is more reliable than the app reporting it's own PID as apps
+    // within an app namespace are unable to do so correctly
+    if (m_pid > 0) {
+        return m_pid;
+    }
+
 #if !defined(KDE_NO_WARNING_OUTPUT)
     if (!(m_info->passedProperties() & NET::WMPid)) {
         qWarning() << "Pass NET::WMPid to KWindowInfo";
     }
 #endif
+
     return m_info->pid();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.60.0/src/platforms/xcb/kwindowinfo_p_x11.h 
new/kwindowsystem-5.61.0/src/platforms/xcb/kwindowinfo_p_x11.h
--- old/kwindowsystem-5.60.0/src/platforms/xcb/kwindowinfo_p_x11.h      
2019-07-07 20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/src/platforms/xcb/kwindowinfo_p_x11.h      
2019-08-03 21:59:52.000000000 +0200
@@ -66,6 +66,7 @@
     QString m_iconic_name;
     QRect m_geometry;
     QRect m_frame_geometry;
+    int m_pid = -1; // real PID from XResources. Valid if > 0
     bool m_valid;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.60.0/src/platforms/xcb/kxmessages.cpp 
new/kwindowsystem-5.61.0/src/platforms/xcb/kxmessages.cpp
--- old/kwindowsystem-5.60.0/src/platforms/xcb/kxmessages.cpp   2019-07-07 
20:39:06.000000000 +0200
+++ new/kwindowsystem-5.61.0/src/platforms/xcb/kxmessages.cpp   2019-08-03 
21:59:52.000000000 +0200
@@ -30,7 +30,7 @@
 
 #include <qcoreapplication.h>
 #include <QDebug>
-#include <QWidget> // WId
+#include <QWindow> // WId
 #include <QAbstractNativeEventFilter>
 
 #include <xcb/xcb.h>
@@ -112,7 +112,7 @@
     KXMessagesPrivate(KXMessages *parent, const char *acceptBroadcast, 
xcb_connection_t *c, xcb_window_t root)
         : accept_atom1(acceptBroadcast ? QByteArray(acceptBroadcast) + 
QByteArrayLiteral("_BEGIN") : QByteArray())
         , accept_atom2(acceptBroadcast ? QByteArray(acceptBroadcast) : 
QByteArray())
-        , handle(new QWidget)
+        , handle(new QWindow)
         , q(parent)
         , valid(c)
         , connection(c)
@@ -129,7 +129,7 @@
     XcbAtom accept_atom1;
     XcbAtom accept_atom2;
     QMap< WId, QByteArray > incoming_messages;
-    QScopedPointer<QWidget> handle;
+    QScopedPointer<QWindow> handle;
     KXMessages *q;
     bool valid;
     xcb_connection_t *connection;


Reply via email to