Hello community, here is the log from the commit of package kwin5 for openSUSE:Factory checked in at 2019-06-12 13:29:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwin5 (Old) and /work/SRC/openSUSE:Factory/.kwin5.new.4811 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwin5" Wed Jun 12 13:29:32 2019 rev:98 rq:708309 version:5.16.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwin5/kwin5.changes 2019-05-09 10:06:22.488506609 +0200 +++ /work/SRC/openSUSE:Factory/.kwin5.new.4811/kwin5.changes 2019-06-12 13:29:34.120260744 +0200 @@ -1,0 +2,34 @@ +Thu Jun 6 14:07:08 UTC 2019 - [email protected] + +- Update to 5.16.0 + * New bugfix release + * For more details please see: + * https://www.kde.org/announcements/plasma-5.16.0.php +- Changes since 5.15.90: + * Avoid again invalid geometry of internal clients (kde#386304) + * [effects/screenshot] Upload data to xpixmap in chunks + * Move knsrc files to the new location + * Avoid potential assert in SM saving (kde#395712) + +------------------------------------------------------------------- +Sun Jun 2 19:51:52 UTC 2019 - Jan Engelhardt <[email protected]> + +- Use the right require type for permissions. + +------------------------------------------------------------------- +Fri May 17 19:18:45 UTC 2019 - Fabian Vogt <[email protected]> + +- Mention Qt plugins and QML modules explicitly +- Move htmldoc translations to -lang subpackage + +------------------------------------------------------------------- +Thu May 16 16:56:38 UTC 2019 - [email protected] + +- Update to 5.15.90 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/plasma-5.15.90.php +- Too many changes to list here +- Adjust 0001-Use-Xauthority-for-Xwayland.patch for upstream changes + +------------------------------------------------------------------- Old: ---- kwin-5.15.5.tar.xz kwin-5.15.5.tar.xz.sig New: ---- kwin-5.16.0.tar.xz kwin-5.16.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwin5.spec ++++++ --- /var/tmp/diff_new_pack.nmXW6d/_old 2019-06-12 13:29:34.820260377 +0200 +++ /var/tmp/diff_new_pack.nmXW6d/_new 2019-06-12 13:29:34.824260375 +0200 @@ -21,7 +21,7 @@ %global wayland (0%{?suse_version} >= 1330) %bcond_without lang Name: kwin5 -Version: 5.15.5 +Version: 5.16.0 Release: 0 # Full Plasma 5 version (e.g. 5.8.95) %{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}} @@ -31,9 +31,9 @@ License: GPL-2.0-or-later AND GPL-3.0-or-later Group: System/GUI/KDE Url: http://www.kde.org -Source: https://download.kde.org/stable/plasma/%{version}/kwin-%{version}.tar.xz +Source: kwin-%{version}.tar.xz %if %{with lang} -Source1: https://download.kde.org/stable/plasma/%{version}/kwin-%{version}.tar.xz.sig +Source1: kwin-%{version}.tar.xz.sig Source2: plasma.keyring %endif # PATCH-FIX-OPENSUSE @@ -120,6 +120,7 @@ BuildRequires: pkgconfig(xcb-shape) >= 1.10 BuildRequires: pkgconfig(xcb-shm) >= 1.10 BuildRequires: pkgconfig(xcb-sync) >= 1.10 +BuildRequires: pkgconfig(xcb-util) BuildRequires: pkgconfig(xcb-xfixes) >= 1.10 BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xkbcommon) >= 0.7.0 @@ -142,6 +143,9 @@ %requires_eq libQt5Core5 %requires_eq libQt5Gui5 Provides: windowmanager +# For post and verifyscript +Requires(post): permissions +Requires(verify): permissions %requires_ge Mesa-libEGL1 %requires_ge libKF5WindowSystem5 %requires_ge plasma-framework @@ -187,8 +191,10 @@ %endif %if %{with lang} %kf5_find_lang + %kf5_find_htmldocs %endif - %fdupes %{buildroot}%{_kf5_libdir} %{buildroot}%{_datadir} + %fdupes %{buildroot}%{_kf5_libdir} + %fdupes %{buildroot}%{_datadir} %post /sbin/ldconfig @@ -209,8 +215,9 @@ %verify(not caps) %{_kf5_bindir}/kwin_wayland %endif %{_kf5_bindir}/kwin_x11 -%config %{_kf5_configdir}/*.knsrc %config %{_kf5_configdir}/org_kde_kwin.categories +%{_kf5_knsrcfilesdir}/*.knsrc + %{_kf5_libdir}/kconf_update_bin/ %{_kf5_libdir}/libexec/ %{_kf5_libdir}/libkwin.so.* @@ -221,21 +228,97 @@ %{_kf5_libdir}/libkwinxrenderutils.so.* %{_kf5_libdir}/libkcmkwincommon.so.5 %{_kf5_libdir}/libkcmkwincommon.so.5.* -%{_kf5_plugindir}/ -%{_kf5_qmldir}/ +%{_kf5_plugindir}/kcm_kwin_scripts.so +%{_kf5_plugindir}/kcm_kwinoptions.so +%{_kf5_plugindir}/kcm_kwinrules.so +%{_kf5_plugindir}/kcm_kwinscreenedges.so +%{_kf5_plugindir}/kcm_kwintabbox.so +%{_kf5_plugindir}/kcm_kwintouchscreen.so +%dir %{_kf5_plugindir}/kcms/ +%{_kf5_plugindir}/kcms/kcm_kwin_effects.so +%{_kf5_plugindir}/kcms/kcm_kwin_virtualdesktops.so +%{_kf5_plugindir}/kcms/kcm_kwindecoration.so +%dir %{_kf5_plugindir}/kf5/ +%dir %{_kf5_plugindir}/kf5/org.kde.kidletime.platforms/ +%{_kf5_plugindir}/kf5/org.kde.kidletime.platforms/KF5IdleTimeKWinWaylandPrivatePlugin.so +%dir %{_kf5_plugindir}/kf5/org.kde.kwindowsystem.platforms/ +%{_kf5_plugindir}/kf5/org.kde.kwindowsystem.platforms/KF5WindowSystemKWinPrivatePlugin.so +%dir %{_kf5_plugindir}/kpackage/ +%dir %{_kf5_plugindir}/kpackage/packagestructure/ +%{_kf5_plugindir}/kpackage/packagestructure/kwin_packagestructure_aurorae.so +%{_kf5_plugindir}/kpackage/packagestructure/kwin_packagestructure_decoration.so +%{_kf5_plugindir}/kpackage/packagestructure/kwin_packagestructure_effect.so +%{_kf5_plugindir}/kpackage/packagestructure/kwin_packagestructure_scripts.so +%{_kf5_plugindir}/kpackage/packagestructure/kwin_packagestructure_windowswitcher.so +%dir %{_kf5_plugindir}/kwin/ +%dir %{_kf5_plugindir}/kwin/effects/ +%dir %{_kf5_plugindir}/kwin/effects/configs/ +%{_kf5_plugindir}/kwin/effects/configs/kcm_kwin4_genericscripted.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_blur_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_coverswitch_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_cube_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_cubeslide_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_desktopgrid_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_diminactive_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_flipswitch_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_glide_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_invert_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_lookingglass_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_magiclamp_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_magnifier_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_mouseclick_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_mousemark_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_presentwindows_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_resize_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_showfps_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_showpaint_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_slide_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_thumbnailaside_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_trackmouse_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_windowgeometry_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_wobblywindows_config.so +%{_kf5_plugindir}/kwin/effects/configs/kwin_zoom_config.so +%{_kf5_plugindir}/kwincompositing.so +%dir %{_kf5_plugindir}/org.kde.kdecoration2/ +%{_kf5_plugindir}/org.kde.kdecoration2/kwin5_aurorae.so +%dir %{_kf5_plugindir}/org.kde.kglobalaccel5.platforms/ +%{_kf5_plugindir}/org.kde.kglobalaccel5.platforms/KF5GlobalAccelPrivateKWin.so +%dir %{_kf5_plugindir}/org.kde.kwin.platforms/ +%{_kf5_plugindir}/org.kde.kwin.platforms/KWinX11Platform.so +%dir %{_kf5_plugindir}/org.kde.kwin.scenes/ +%{_kf5_plugindir}/org.kde.kwin.scenes/KWinSceneOpenGL.so +%{_kf5_plugindir}/org.kde.kwin.scenes/KWinSceneQPainter.so +%{_kf5_plugindir}/org.kde.kwin.scenes/KWinSceneXRender.so +%dir %{_kf5_plugindir}/org.kde.kwin.waylandbackends/ +%{_kf5_plugindir}/org.kde.kwin.waylandbackends/KWinWaylandDrmBackend.so +%{_kf5_plugindir}/org.kde.kwin.waylandbackends/KWinWaylandFbdevBackend.so +%{_kf5_plugindir}/org.kde.kwin.waylandbackends/KWinWaylandVirtualBackend.so +%{_kf5_plugindir}/org.kde.kwin.waylandbackends/KWinWaylandWaylandBackend.so +%{_kf5_plugindir}/org.kde.kwin.waylandbackends/KWinWaylandX11Backend.so +%{_kf5_plugindir}/platforms/KWinQpaPlugin.so + +%dir %{_kf5_qmldir}/org/ +%dir %{_kf5_qmldir}/org/kde/ +%dir %{_kf5_qmldir}/org/kde/kwin/ +%{_kf5_qmldir}/org/kde/kwin/decoration/ +%{_kf5_qmldir}/org/kde/kwin/decorations/ +%{_kf5_qmldir}/org/kde/kwin/private/ + %{_kf5_sharedir}/config.kcfg/ -%{_kf5_sharedir}/icons/hicolor/ +%{_kf5_sharedir}/icons/hicolor/*/apps/kwin.png +%{_kf5_sharedir}/icons/hicolor/scalable/apps/kwin.svgz %{_kf5_servicesdir}/ %{_kf5_servicetypesdir}/ %{_kf5_sharedir}/kwin/ -%{_kf5_sharedir}/kwincompositing/ %dir %{_kf5_sharedir}/kconf_update/ %{_kf5_sharedir}/kconf_update/kwin.upd %{_kf5_notifydir}/ -%doc %{_kf5_htmldir}/ -%dir %{_kf5_sharedir}/kpackage -%dir %{_kf5_sharedir}/kpackage/kcms +%doc %{_kf5_htmldir}/en/ +%dir %{_kf5_sharedir}/kpackage/ +%dir %{_kf5_sharedir}/kpackage/kcms/ %{_kf5_sharedir}/kpackage/kcms/kcm_kwin_virtualdesktops +%{_kf5_sharedir}/kpackage/kcms/kcm_kwindecoration +%{_kf5_sharedir}/kpackage/kcms/kcm_kwin_effects %files devel %license COPYING* ++++++ 0001-Use-Xauthority-for-Xwayland.patch ++++++ --- /var/tmp/diff_new_pack.nmXW6d/_old 2019-06-12 13:29:34.856260358 +0200 +++ /var/tmp/diff_new_pack.nmXW6d/_new 2019-06-12 13:29:34.860260356 +0200 @@ -1,22 +1,27 @@ -From 10011387cd146f6b92f337b4c10ac4000c981891 Mon Sep 17 00:00:00 2001 +From 02cdcb383b938a3e17ea2bf63a14682473dc8d5b Mon Sep 17 00:00:00 2001 From: Fabian Vogt <[email protected]> Date: Sat, 17 Mar 2018 23:25:56 +0100 -Subject: [PATCH] Use Xauthority for Xwayland -References: boo#1084737 +Subject: [PATCH] Use Xauthority for Xwayland authorization -Needed by kdesu, su, ... -If creation fails, it will fall back to not using it. +Currently Xwayland only looks at the uid of the application connecting to it. +Using Xauthority gives more flexibility here, by having a token which can be +passed around. + +Not only does this allow to grant only certain applications the right to +connect to the display (e.g. su user xterm) while keeping other applications +outside, this allows also +starting applications as other users again --- CMakeLists.txt | 1 + - main_wayland.cpp | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- - main_wayland.h | 2 ++ - 3 files changed, 102 insertions(+), 2 deletions(-) + xwl/xwayland.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++- + xwl/xwayland.h | 3 ++ + 3 files changed, 105 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index cbf9529ca..ba9ac6584 100644 +index ec780a9d5..1a5a72698 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -579,6 +579,7 @@ set(kwin_XLIB_LIBS +@@ -594,6 +594,7 @@ set(kwin_XLIB_LIBS ${X11_X11_LIB} ${X11_ICE_LIB} ${X11_SM_LIB} @@ -24,38 +29,21 @@ ) set(kwin_XCB_LIBS -diff --git a/main_wayland.cpp b/main_wayland.cpp -index 2107bc85a..b3e5c6cf3 100644 ---- a/main_wayland.cpp -+++ b/main_wayland.cpp -@@ -70,6 +70,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. - #include <sys/capability.h> - #endif +diff --git a/xwl/xwayland.cpp b/xwl/xwayland.cpp +index a521f27c0..2cc8d398c 100644 +--- a/xwl/xwayland.cpp ++++ b/xwl/xwayland.cpp +@@ -48,6 +48,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include <sys/socket.h> + #include <iostream> +#include <X11/Xauth.h> + - #include <sched.h> - - #include <iostream> -@@ -157,6 +159,16 @@ void ApplicationWayland::performStartup() + static void readDisplay(int pipe) { - if (m_startXWayland) { - setOperationMode(OperationModeXwayland); -+ -+ QString dir = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); -+ if (!dir.isEmpty()) { -+ m_xwaylandAuthority.setFileTemplate(dir + QStringLiteral("/xauth_XXXXXX")); -+ m_xwaylandAuthority.open(); -+ } -+ -+ if (m_xwaylandAuthority.fileName().isEmpty()) { -+ std::cerr << "Warning: Could not create a Xauthority file for Xwayland." << std::endl; -+ } - } - // first load options - done internally by a different thread - createOptions(); -@@ -206,8 +218,89 @@ void ApplicationWayland::continueStartupWithSceen() - notifyKSplash(); + QFile readPipe; +@@ -105,8 +107,84 @@ Xwayland::~Xwayland() + s_self = nullptr; } +static QByteArray getRandomData(qint64 bytes) @@ -124,27 +112,22 @@ + return success; +} + - void ApplicationWayland::continueStartupWithX() + void Xwayland::init() { -+ if (!m_xwaylandAuthority.fileName().isEmpty()) { -+ QString hostname; -+ if (addCookieToFile(m_xwaylandAuthority.fileName(), hostname)) { -+ setenv("XAUTHORITY", qPrintable(m_xwaylandAuthority.fileName()), 1); -+ setenv("XAUTHLOCALHOSTNAME", qPrintable(hostname), 1); -+ m_environment.insert(QStringLiteral("XAUTHORITY"), m_xwaylandAuthority.fileName()); -+ m_environment.insert(QStringLiteral("XAUTHLOCALHOSTNAME"), hostname); -+ } -+ else { -+ std::cerr << "Could not generate Xauthority entry" << std::endl; -+ // We can't authenticate using it so the server must not see any entries either -+ m_xwaylandAuthority.resize(0); -+ } ++ QString dir = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); ++ if (!dir.isEmpty()) { ++ m_xwaylandAuthority.setFileTemplate(dir + QStringLiteral("/xauth_XXXXXX")); ++ m_xwaylandAuthority.open(); ++ } ++ ++ if (m_xwaylandAuthority.fileName().isEmpty()) { ++ std::cerr << "Warning: Could not create a Xauthority file for Xwayland." << std::endl; + } + - createX11Connection(); - xcb_connection_t *c = x11Connection(); - if (!c) { -@@ -377,11 +470,15 @@ void ApplicationWayland::startXwaylandServer() + int pipeFds[2]; + if (pipe(pipeFds) != 0) { + std::cerr << "FATAL ERROR failed to create pipe to start Xwayland " << std::endl; +@@ -148,11 +226,15 @@ void Xwayland::init() env.insert("WAYLAND_SOCKET", QByteArray::number(wlfd)); env.insert("EGL_PLATFORM", QByteArrayLiteral("DRM")); m_xwaylandProcess->setProcessEnvironment(env); @@ -160,28 +143,53 @@ + } + m_xwaylandProcess->setArguments(args); m_xwaylandFailConnection = connect(m_xwaylandProcess, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), this, - [] (QProcess::ProcessError error) { + [this] (QProcess::ProcessError error) { if (error == QProcess::FailedToStart) { -diff --git a/main_wayland.h b/main_wayland.h -index 31b7ebd55..37f9b2882 100644 ---- a/main_wayland.h -+++ b/main_wayland.h -@@ -21,6 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. - #define KWIN_MAIN_WAYLAND_H - #include "main.h" - #include <QProcessEnvironment> +@@ -184,6 +266,23 @@ void Xwayland::prepareDestroy() + + void Xwayland::createX11Connection() + { ++ if (!m_xwaylandAuthority.fileName().isEmpty()) { ++ QString hostname; ++ if (addCookieToFile(m_xwaylandAuthority.fileName(), hostname)) { ++ setenv("XAUTHORITY", qPrintable(m_xwaylandAuthority.fileName()), 1); ++ setenv("XAUTHLOCALHOSTNAME", qPrintable(hostname), 1); ++ auto env = m_app->processStartupEnvironment(); ++ env.insert(QStringLiteral("XAUTHORITY"), m_xwaylandAuthority.fileName()); ++ env.insert(QStringLiteral("XAUTHLOCALHOSTNAME"), hostname); ++ m_app->setProcessStartupEnvironment(env); ++ } ++ else { ++ std::cerr << "Could not generate Xauthority entry" << std::endl; ++ // We can't authenticate using it so the server must not see any entries either ++ m_xwaylandAuthority.resize(0); ++ } ++ } ++ + int screenNumber = 0; + xcb_connection_t *c = nullptr; + if (m_xcbConnectionFd == -1) { +diff --git a/xwl/xwayland.h b/xwl/xwayland.h +index 2ee1e607f..a8b89242b 100644 +--- a/xwl/xwayland.h ++++ b/xwl/xwayland.h +@@ -23,6 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include "xwayland_interface.h" + + #include <xcb/xproto.h> +#include <QTemporaryFile> class QProcess; -@@ -74,6 +75,7 @@ private: - QMetaObject::Connection m_xwaylandFailConnection; - QProcessEnvironment m_environment; - QString m_sessionArgument; +@@ -72,6 +73,8 @@ private: + const xcb_query_extension_reply_t *m_xfixes = nullptr; + DataBridge *m_dataBridge = nullptr; + + QTemporaryFile m_xwaylandAuthority; ++ + ApplicationWaylandAbstract *m_app; }; - } -- -2.16.2 +2.20.1 ++++++ kwin-5.15.5.tar.xz -> kwin-5.16.0.tar.xz ++++++ ++++ 131320 lines of diff (skipped)
