Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libkscreen2 for openSUSE:Factory checked in at 2022-06-13 13:02:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkscreen2 (Old) and /work/SRC/openSUSE:Factory/.libkscreen2.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkscreen2" Mon Jun 13 13:02:20 2022 rev:139 rq:981916 version:5.25.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libkscreen2/libkscreen2.changes 2022-05-05 23:05:14.297470787 +0200 +++ /work/SRC/openSUSE:Factory/.libkscreen2.new.1548/libkscreen2.changes 2022-06-13 13:02:36.569123632 +0200 @@ -1,0 +2,26 @@ +Thu Jun 9 11:15:01 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.25.0 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.25.0 +- Changes since 5.24.90: + * Remove CI dependency on kwayland-server as that is no longer a thing. + +------------------------------------------------------------------- +Thu May 19 19:45:55 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.24.90 + * New feature release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.24.90 +- Changes since 5.24.5: + * Use const'ref + * Delete proxy for PrimaryOutput wayland interface in destructor (kde#451847) + * Adapt recent DPMS changes to also build with Qt6 + * [doctor] Port dpms handling to QtWaylandScanner + * Adapt build system to also support Qt6 + * backends/kwayland: Use output name to guess output type + * Update required PlasmaWaylandProtocols version + +------------------------------------------------------------------- Old: ---- libkscreen-5.24.5.tar.xz libkscreen-5.24.5.tar.xz.sig New: ---- libkscreen-5.25.0.tar.xz libkscreen-5.25.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkscreen2.spec ++++++ --- /var/tmp/diff_new_pack.MLnxeN/_old 2022-06-13 13:02:37.121124403 +0200 +++ /var/tmp/diff_new_pack.MLnxeN/_new 2022-06-13 13:02:37.125124409 +0200 @@ -19,7 +19,7 @@ %bcond_without released %define lname libKF5Screen7 Name: libkscreen2 -Version: 5.24.5 +Version: 5.25.0 Release: 0 # Full Plasma 5 version (e.g. 5.8.95) %{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}} @@ -29,9 +29,9 @@ License: GPL-2.0-or-later Group: System/GUI/KDE URL: http://www.kde.org -Source: https://download.kde.org/stable/plasma/%{version}/libkscreen-%{version}.tar.xz +Source: libkscreen-%{version}.tar.xz %if %{with released} -Source1: https://download.kde.org/stable/plasma/%{version}/libkscreen-%{version}.tar.xz.sig +Source1: libkscreen-%{version}.tar.xz.sig Source2: plasma.keyring %endif BuildRequires: cmake >= 3.16 ++++++ libkscreen-5.24.5.tar.xz -> libkscreen-5.25.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/.kde-ci.yml new/libkscreen-5.25.0/.kde-ci.yml --- old/libkscreen-5.24.5/.kde-ci.yml 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/.kde-ci.yml 2022-06-09 11:11:47.000000000 +0200 @@ -6,4 +6,3 @@ 'require': 'frameworks/extra-cmake-modules': '@latest' 'frameworks/kwayland': '@latest' - 'plasma/kwayland-server': '@same' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/CMakeLists.txt new/libkscreen-5.25.0/CMakeLists.txt --- old/libkscreen-5.24.5/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.16) project(libkscreen) -set(PROJECT_VERSION "5.24.5") +set(PROJECT_VERSION "5.25.0") set(QT_MIN_VERSION "5.15.0") -set(KF5_MIN_VERSION "5.86") +set(KF5_MIN_VERSION "5.91") set(KDE_COMPILERSETTINGS_LEVEL "5.82") set(CMAKE_CXX_STANDARD 17) @@ -26,8 +26,11 @@ include(KDEClangFormat) include(KDEGitCommitHooks) -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Gui Test X11Extras) -find_package(QtWaylandScanner REQUIRED) +find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Gui Test WaylandClient) +if (QT_MAJOR_VERSION EQUAL "5") + find_package(Qt5 CONFIG REQUIRED X11Extras) + find_package(QtWaylandScanner REQUIRED) +endif() find_package(WaylandScanner) # Wayland backend @@ -70,7 +73,7 @@ add_subdirectory(tests) endif() -set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5Screen") +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Screen") # add clang-format target for all our real source files file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) @@ -110,7 +113,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h" - DESTINATION "${KF5_INCLUDE_INSTALL_DIR}" + DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}" COMPONENT Devel ) install(FILES libkscreen.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/autotests/testkwaylandbackend.cpp new/libkscreen-5.25.0/autotests/testkwaylandbackend.cpp --- old/libkscreen-5.24.5/autotests/testkwaylandbackend.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/autotests/testkwaylandbackend.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -115,7 +115,7 @@ void testWaylandBackend::verifyOutputs() { bool primaryFound = false; - for (const KScreen::OutputPtr op : m_config->outputs()) { + for (const KScreen::OutputPtr &op : m_config->outputs()) { if (op->isPrimary()) { primaryFound = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/kwayland/CMakeLists.txt new/libkscreen-5.25.0/backends/kwayland/CMakeLists.txt --- old/libkscreen-5.24.5/backends/kwayland/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/kwayland/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -16,22 +16,31 @@ CATEGORY_NAME kscreen.kwayland ) -ecm_add_qtwayland_client_protocol(wayland_SRCS - PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-device-v2.xml - BASENAME kde-output-device-v2 -) +add_library(KSC_KWayland MODULE) +if (QT_MAJOR_VERSION EQUAL "5") + ecm_add_qtwayland_client_protocol(wayland_SRCS + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-device-v2.xml + BASENAME kde-output-device-v2 + ) -ecm_add_qtwayland_client_protocol(wayland_SRCS - PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-management-v2.xml - BASENAME kde-output-management-v2 -) + ecm_add_qtwayland_client_protocol(wayland_SRCS + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-management-v2.xml + BASENAME kde-output-management-v2 + ) -ecm_add_qtwayland_client_protocol(wayland_SRCS - PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-primary-output-v1.xml - BASENAME kde-primary-output-v1 -) + ecm_add_qtwayland_client_protocol(wayland_SRCS + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-primary-output-v1.xml + BASENAME kde-primary-output-v1 + ) +else() + qt6_generate_wayland_protocol_client_sources(KSC_KWayland FILES + ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-device-v2.xml + ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-output-management-v2.xml + ${PLASMA_WAYLAND_PROTOCOLS_DIR}/kde-primary-output-v1.xml + ) +endif() -add_library(KSC_KWayland MODULE ${wayland_SRCS}) +target_sources(KSC_KWayland PRIVATE ${wayland_SRCS}) set_target_properties(KSC_KWayland PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/kscreen") set_target_properties(KSC_KWayland PROPERTIES PREFIX "") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/kwayland/waylandoutputmanagement.cpp new/libkscreen-5.25.0/backends/kwayland/waylandoutputmanagement.cpp --- old/libkscreen-5.24.5/backends/kwayland/waylandoutputmanagement.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/kwayland/waylandoutputmanagement.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -43,6 +43,13 @@ { } +WaylandPrimaryOutput::~WaylandPrimaryOutput() +{ + if (kde_primary_output_v1_get_version(object()) >= KDE_PRIMARY_OUTPUT_V1_DESTROY_SINCE_VERSION) { + destroy(); + } +} + void WaylandPrimaryOutput::kde_primary_output_v1_primary_output(const QString &outputName) { Q_EMIT primaryOutputChanged(outputName); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/kwayland/waylandoutputmanagement.h new/libkscreen-5.25.0/backends/kwayland/waylandoutputmanagement.h --- old/libkscreen-5.24.5/backends/kwayland/waylandoutputmanagement.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/kwayland/waylandoutputmanagement.h 2022-06-09 11:11:47.000000000 +0200 @@ -47,6 +47,7 @@ Q_OBJECT public: WaylandPrimaryOutput(struct ::wl_registry *registry, int id, int version); + ~WaylandPrimaryOutput(); Q_SIGNALS: void primaryOutputChanged(const QString &outputName); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/qscreen/CMakeLists.txt new/libkscreen-5.25.0/backends/qscreen/CMakeLists.txt --- old/libkscreen-5.24.5/backends/qscreen/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/qscreen/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -19,8 +19,10 @@ set_target_properties(KSC_QScreen PROPERTIES PREFIX "") target_link_libraries(KSC_QScreen Qt::Core Qt::Gui - Qt::X11Extras KF5::Screen ) +if (TARGET Qt::X11Extras) + target_link_libraries(KSC_QScreen Qt::X11Extras) +endif() install(TARGETS KSC_QScreen DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kscreen/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xcbeventlistener.cpp new/libkscreen-5.25.0/backends/xcbeventlistener.cpp --- old/libkscreen-5.24.5/backends/xcbeventlistener.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xcbeventlistener.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -7,7 +7,11 @@ #include "xcbeventlistener.h" #include <QGuiApplication> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif #include <QRect> @@ -107,7 +111,11 @@ return QStringLiteral("invalid value (%1)").arg(connection); } +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) bool XCBEventListener::nativeEventFilter(const QByteArray &eventType, void *message, long int *result) +#else +bool XCBEventListener::nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) +#endif { Q_UNUSED(result); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xcbeventlistener.h new/libkscreen-5.25.0/backends/xcbeventlistener.h --- old/libkscreen-5.24.5/backends/xcbeventlistener.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xcbeventlistener.h 2022-06-09 11:11:47.000000000 +0200 @@ -22,7 +22,11 @@ XCBEventListener(); ~XCBEventListener() override; +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) bool nativeEventFilter(const QByteArray &eventType, void *message, long int *result) override; +#else + bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override; +#endif Q_SIGNALS: /* Emitted when only XRandR 1.1 or older is available */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xcbwrapper.h new/libkscreen-5.25.0/backends/xcbwrapper.h --- old/libkscreen-5.24.5/backends/xcbwrapper.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xcbwrapper.h 2022-06-09 11:11:47.000000000 +0200 @@ -15,7 +15,11 @@ #include <type_traits> #include <QScopedPointer> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif #include <xcb/randr.h> #include <xcb/xcb.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xrandr/CMakeLists.txt new/libkscreen-5.25.0/backends/xrandr/CMakeLists.txt --- old/libkscreen-5.24.5/backends/xrandr/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xrandr/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -20,9 +20,13 @@ set_target_properties(KSC_XRandR PROPERTIES PREFIX "") target_link_libraries(KSC_XRandR Qt::Core Qt::Gui - Qt::X11Extras ${XCB_LIBRARIES} KF5::Screen ) +if (QT_MAJOR_VERSION EQUAL "5") + target_link_libraries(KSC_XRandR Qt::X11Extras) +else() + target_link_libraries(KSC_XRandR Qt::GuiPrivate) +endif() install(TARGETS KSC_XRandR DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kscreen/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xrandr/xrandr.cpp new/libkscreen-5.25.0/backends/xrandr/xrandr.cpp --- old/libkscreen-5.24.5/backends/xrandr/xrandr.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xrandr/xrandr.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -19,7 +19,11 @@ #include <QTime> #include <QTimer> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif xcb_screen_t *XRandR::s_screen = nullptr; xcb_window_t XRandR::s_rootWindow = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xrandr/xrandrconfig.cpp new/libkscreen-5.25.0/backends/xrandr/xrandrconfig.cpp --- old/libkscreen-5.24.5/backends/xrandr/xrandrconfig.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xrandr/xrandrconfig.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -18,7 +18,11 @@ #include <QRect> #include <QScopedPointer> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif using namespace KScreen; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xrandr/xrandrscreen.cpp new/libkscreen-5.25.0/backends/xrandr/xrandrscreen.cpp --- old/libkscreen-5.24.5/backends/xrandr/xrandrscreen.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xrandr/xrandrscreen.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -11,7 +11,11 @@ #include "screen.h" #include "xrandrconfig.h" +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif XRandRScreen::XRandRScreen(XRandRConfig *config) : QObject(config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/backends/xrandr1.1/CMakeLists.txt new/libkscreen-5.25.0/backends/xrandr1.1/CMakeLists.txt --- old/libkscreen-5.24.5/backends/xrandr1.1/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/backends/xrandr1.1/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -17,9 +17,13 @@ set_target_properties(KSC_XRandR11 PROPERTIES PREFIX "") target_link_libraries(KSC_XRandR11 Qt::Core Qt::Gui - Qt::X11Extras ${XCB_LIBRARIES} KF5::Screen ) +if (QT_MAJOR_VERSION EQUAL "5") + target_link_libraries(KSC_XRandR11 Qt::X11Extras) +else() + target_link_libraries(KSC_XRandR11 Qt::GuiPrivate) +endif() install(TARGETS KSC_XRandR11 DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kscreen/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/CMakeLists.txt new/libkscreen-5.25.0/src/CMakeLists.txt --- old/libkscreen-5.24.5/src/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -40,8 +40,12 @@ Qt::Gui PRIVATE Qt::DBus - Qt::X11Extras ) +if (QT_MAJOR_VERSION EQUAL "5") + target_link_libraries(KF5Screen PRIVATE Qt::X11Extras) +else() + target_link_libraries(KF5Screen PRIVATE Qt::GuiPrivate) +endif() set_target_properties(KF5Screen PROPERTIES VERSION "${KSCREEN_VERSION}" @@ -49,7 +53,7 @@ EXPORT_NAME Screen ) -target_include_directories(KF5Screen PUBLIC "$<INSTALL_INTERFACE:${KF5_INCLUDE_INSTALL_DIR}/KScreen>") +target_include_directories(KF5Screen PUBLIC "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KScreen>") install(TARGETS KF5Screen EXPORT KF5ScreenTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) add_library(KF5::Screen ALIAS KF5Screen) @@ -72,12 +76,12 @@ ) install(FILES ${KScreen_HEADERS} - DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KScreen/KScreen + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KScreen/KScreen COMPONENT Devel) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kscreen_export.h backendmanager_p.h # needed for unit-tests in KScreen ${KScreen_REQ_HEADERS} - DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KScreen/kscreen) + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KScreen/kscreen) if(NOT WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kscreen2.pc.in ${CMAKE_CURRENT_BINARY_DIR}/kscreen2.pc @ONLY) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/backendlauncher/CMakeLists.txt new/libkscreen-5.25.0/src/backendlauncher/CMakeLists.txt --- old/libkscreen-5.24.5/src/backendlauncher/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/backendlauncher/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -21,9 +21,13 @@ KF5Screen Qt::Core Qt::Gui - Qt::X11Extras Qt::DBus ) +if (QT_MAJOR_VERSION EQUAL "5") + target_link_libraries(kscreen_backend_launcher Qt::X11Extras) +else() + target_link_libraries(kscreen_backend_launcher Qt::GuiPrivate) +endif() install(TARGETS kscreen_backend_launcher DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR_KF5} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/backendlauncher/backenddbuswrapper.h new/libkscreen-5.25.0/src/backendlauncher/backenddbuswrapper.h --- old/libkscreen-5.24.5/src/backendlauncher/backenddbuswrapper.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/backendlauncher/backenddbuswrapper.h 2022-06-09 11:11:47.000000000 +0200 @@ -10,6 +10,7 @@ #include <QObject> #include <QTimer> +#include <QVariant> #include "types.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/backendlauncher/backendloader.cpp new/libkscreen-5.25.0/src/backendlauncher/backendloader.cpp --- old/libkscreen-5.24.5/src/backendlauncher/backendloader.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/backendlauncher/backendloader.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -16,7 +16,11 @@ #include <QDBusConnectionInterface> #include <QDir> #include <QPluginLoader> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif #include <memory> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/backendmanager.cpp new/libkscreen-5.25.0/src/backendmanager.cpp --- old/libkscreen-5.24.5/src/backendmanager.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/backendmanager.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -25,7 +25,11 @@ #include <QGuiApplication> #include <QStandardPaths> #include <QThread> +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include <private/qtx11extras_p.h> +#else #include <QX11Info> +#endif #include <memory> @@ -227,7 +231,7 @@ } // qCDebug(KSCREEN) << "Connecting ConfigMonitor to backend."; ConfigMonitor::instance()->connectInProcessBackend(backend); - m_inProcessBackend = qMakePair<KScreen::AbstractBackend *, QVariantMap>(backend, arguments); + m_inProcessBackend = qMakePair<KScreen::AbstractBackend *, QVariantMap>(static_cast<KScreen::AbstractBackend *>(backend), QVariantMap(arguments)); setConfig(backend->config()); return backend; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/config.h new/libkscreen-5.25.0/src/config.h --- old/libkscreen-5.24.5/src/config.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/config.h 2022-06-09 11:11:47.000000000 +0200 @@ -9,6 +9,7 @@ #define KSCREEN_CONFIG_H #include "kscreen_export.h" +#include "output.h" #include "screen.h" #include "types.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/doctor/CMakeLists.txt new/libkscreen-5.25.0/src/doctor/CMakeLists.txt --- old/libkscreen-5.24.5/src/doctor/CMakeLists.txt 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/doctor/CMakeLists.txt 2022-06-09 11:11:47.000000000 +0200 @@ -1,4 +1,13 @@ - add_executable(kscreen-doctor main.cpp doctor.cpp dpmsclient.cpp doctor.h dpmsclient.h) -target_link_libraries(kscreen-doctor Qt::DBus KF5::Screen KF5::WaylandClient) + +if (QT_MAJOR_VERSION EQUAL "5") + ecm_add_qtwayland_client_protocol(kscreen-doctor + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/dpms.xml + BASENAME dpms + ) +else() + qt6_generate_wayland_protocol_client_sources(kscreen-doctor FILES ${PLASMA_WAYLAND_PROTOCOLS_DIR}/dpms.xml) +endif() + +target_link_libraries(kscreen-doctor Qt::DBus KF5::Screen KF5::WaylandClient Wayland::Client Qt::WaylandClient) install(TARGETS kscreen-doctor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/doctor/dpmsclient.cpp new/libkscreen-5.25.0/src/doctor/dpmsclient.cpp --- old/libkscreen-5.24.5/src/doctor/dpmsclient.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/doctor/dpmsclient.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -13,15 +13,64 @@ #include <QThread> #include <KWayland/Client/connection_thread.h> -#include <KWayland/Client/dpms.h> #include <KWayland/Client/output.h> #include <KWayland/Client/registry.h> +#include "qwayland-dpms.h" +#include <QtWaylandClient/qwaylandclientextension.h> + Q_LOGGING_CATEGORY(KSCREEN_DPMS, "kscreen.dpms") using namespace KScreen; -using namespace KWayland::Client; +class DpmsManager : public QWaylandClientExtensionTemplate<DpmsManager>, public QtWayland::org_kde_kwin_dpms_manager +{ +public: + DpmsManager() + : QWaylandClientExtensionTemplate<DpmsManager>(1) + { + } +}; + +class Dpms : public QObject, public QtWayland::org_kde_kwin_dpms +{ + Q_OBJECT +public: + Dpms(struct ::org_kde_kwin_dpms *object, QObject *parent) + : QObject(parent) + , org_kde_kwin_dpms(object) + { + } + + bool isSupported() const + { + return m_supported; + } + + Q_SIGNAL void supportedChanged(); + Q_SIGNAL void modeChanged(); + +private: + bool m_supported = false; + bool m_pendingSupported = false; + + void org_kde_kwin_dpms_supported(uint32_t supported) override + { + m_pendingSupported = supported; + } + + void org_kde_kwin_dpms_mode(uint32_t mode) override + { + Q_UNUSED(mode); + } + + void org_kde_kwin_dpms_done() override + { + m_supported = m_pendingSupported; + Q_EMIT supportedChanged(); + Q_EMIT modeChanged(); + } +}; DpmsClient::DpmsClient(QObject *parent) : QObject(parent) @@ -39,65 +88,49 @@ { // setup connection m_connection = KWayland::Client::ConnectionThread::fromApplication(this); - connected(); -} -void DpmsClient::connected() -{ qDebug() << "Connected!"; m_registry->create(m_connection); - QObject::connect(m_registry, &Registry::interfacesAnnounced, this, [this] { - const bool hasDpms = m_registry->hasInterface(Registry::Interface::Dpms); - // QLabel *hasDpmsLabel = new QLabel(&window); + + m_registry->setup(); + + m_manager = new DpmsManager; + + QObject::connect(m_manager, &DpmsManager::activeChanged, this, [this] { + const bool hasDpms = m_manager->isActive(); if (hasDpms) { qDebug() << QStringLiteral("Compositor provides a DpmsManager"); } else { qDebug() << QStringLiteral("Compositor does not provid a DpmsManager"); } - if (hasDpms) { - const auto dpmsData = m_registry->interface(Registry::Interface::Dpms); - m_dpmsManager = m_registry->createDpmsManager(dpmsData.name, dpmsData.version); - } - Q_EMIT this->ready(); }); - m_registry->setup(); // QVERIFY(dpmsSpy.wait(100)); } -void KScreen::DpmsClient::changeMode(KWayland::Client::Dpms::Mode mode) +void KScreen::DpmsClient::changeMode(Mode mode) { - const auto outputs = m_registry->interfaces(Registry::Interface::Output); + const auto outputs = m_registry->interfaces(KWayland::Client::Registry::Interface::Output); for (auto outputInterface : outputs) { KWayland::Client::Output *output = m_registry->createOutput(outputInterface.name, outputInterface.version, m_registry); - Dpms *dpms = nullptr; - if (m_dpmsManager) { - dpms = m_dpmsManager->getDpms(output, output); - } + Dpms *dpms = new Dpms(m_manager->get(output->output()), output); - if (dpms) { - QObject::connect( - dpms, - &Dpms::supportedChanged, - this, - [dpms, mode, output, this] { - if (m_excludedOutputNames.contains(output->model())) { - qDebug() << "Skipping" << output->model() << output->manufacturer(); - return; - } - - if (dpms->isSupported()) { - QObject::connect(dpms, &Dpms::modeChanged, this, &DpmsClient::modeChanged, Qt::QueuedConnection); - qDebug() << "Switching" << output->model() << output->manufacturer() << (mode == Dpms::Mode::On ? "on" : "off"); - m_modeChanges++; - dpms->requestMode(mode); - } - }, - Qt::QueuedConnection); - } + QObject::connect(dpms, &Dpms::supportedChanged, this, [dpms, mode, output, this] { + if (m_excludedOutputNames.contains(output->model())) { + qDebug() << "Skipping" << output->model() << output->manufacturer(); + return; + } + + if (dpms->isSupported()) { + QObject::connect(dpms, &Dpms::modeChanged, this, &DpmsClient::modeChanged, Qt::QueuedConnection); + qDebug() << "Switching" << output->model() << output->manufacturer() << (mode == Mode::On ? "on" : "off"); + m_modeChanges++; + dpms->set(mode); + } + }); } } @@ -112,12 +145,14 @@ void DpmsClient::on() { - changeMode(Dpms::Mode::On); + changeMode(Mode::On); // Q_EMIT finished(); } void KScreen::DpmsClient::off() { - changeMode(Dpms::Mode::Off); + changeMode(Mode::Off); // Q_EMIT finished(); } + +#include "dpmsclient.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/doctor/dpmsclient.h new/libkscreen-5.25.0/src/doctor/dpmsclient.h --- old/libkscreen-5.24.5/src/doctor/dpmsclient.h 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/doctor/dpmsclient.h 2022-06-09 11:11:47.000000000 +0200 @@ -11,7 +11,6 @@ #include <QObject> #include <QRect> -#include <KWayland/Client/dpms.h> #include <KWayland/Client/registry.h> class QThread; @@ -24,6 +23,9 @@ } } +class Dpms; +class DpmsManager; + namespace KScreen { class DpmsClient : public QObject @@ -48,13 +50,18 @@ void finished(); private Q_SLOTS: - void connected(); void modeChanged(); private: - void changeMode(KWayland::Client::Dpms::Mode mode); + enum Mode { + On = 0, + Standby = 1, + Suspend = 2, + Off = 3, + }; + + void changeMode(Mode mode); KWayland::Client::ConnectionThread *m_connection = nullptr; - KWayland::Client::DpmsManager *m_dpmsManager = nullptr; KWayland::Client::Registry *m_registry = nullptr; bool m_setOff = true; bool m_setOn = false; @@ -62,6 +69,7 @@ bool m_supportedOututCount = 0; int m_modeChanges = 0; QStringList m_excludedOutputNames; + DpmsManager *m_manager; }; } // namespace diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkscreen-5.24.5/src/edid.cpp new/libkscreen-5.25.0/src/edid.cpp --- old/libkscreen-5.24.5/src/edid.cpp 2022-05-03 12:13:39.000000000 +0200 +++ new/libkscreen-5.25.0/src/edid.cpp 2022-06-09 11:11:47.000000000 +0200 @@ -253,9 +253,9 @@ * |\---/\---/\---/ * R C1 C2 C3 */ pnpId.resize(3); - pnpId[0] = 'A' + ((data[GCM_EDID_OFFSET_PNPID + 0] & 0x7c) / 4) - 1; - pnpId[1] = 'A' + ((data[GCM_EDID_OFFSET_PNPID + 0] & 0x3) * 8) + ((data[GCM_EDID_OFFSET_PNPID + 1] & 0xe0) / 32) - 1; - pnpId[2] = 'A' + (data[GCM_EDID_OFFSET_PNPID + 1] & 0x1f) - 1; + pnpId[0] = QLatin1Char('A' + ((data[GCM_EDID_OFFSET_PNPID + 0] & 0x7c) / 4) - 1); + pnpId[1] = QLatin1Char('A' + ((data[GCM_EDID_OFFSET_PNPID + 0] & 0x3) * 8) + ((data[GCM_EDID_OFFSET_PNPID + 1] & 0xe0) / 32) - 1); + pnpId[2] = QLatin1Char('A' + (data[GCM_EDID_OFFSET_PNPID + 1] & 0x1f) - 1); // load the PNP_IDS file and load the vendor name QFile pnpIds(QStringLiteral(PNP_IDS));