diff --git a/0001-Declare-and-use-logging-categories.patch b/0001-Declare-and-use-logging-categories.patch new file mode 100644 index 0000000..26ead02 --- /dev/null +++ b/0001-Declare-and-use-logging-categories.patch @@ -0,0 +1,485 @@ +From 7299923943687a9e9e411c6b0a8d74e04d5a9b04 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Tue, 11 Aug 2020 19:50:46 +0200 +Subject: [PATCH 1/3] Declare and use logging categories + +Adds the following logging categories: +- kf.rfb +- kf.rfb.framebuffer.qt +- kf.rfb.framebuffer.xcb +--- + CMakeLists.txt | 7 +++++ + framebuffers/qt/CMakeLists.txt | 8 ++++++ + framebuffers/xcb/CMakeLists.txt | 8 ++++++ + framebuffers/xcb/xcb_framebuffer.cpp | 40 +++++++++++++++------------- + krfb/CMakeLists.txt | 8 ++++++ + krfb/eventsmanager.cpp | 12 ++++----- + krfb/framebuffermanager.cpp | 14 +++++----- + krfb/invitationsrfbclient.cpp | 6 ++--- + krfb/invitationsrfbserver.cpp | 4 +-- + krfb/main.cpp | 8 +++--- + krfb/rfbclient.cpp | 1 - + krfb/rfbserver.cpp | 8 +++--- + krfb/rfbservermanager.cpp | 1 - + 13 files changed, 78 insertions(+), 47 deletions(-) + +Index: krfb-20.08.1/CMakeLists.txt +=================================================================== +--- krfb-20.08.1.orig/CMakeLists.txt 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/CMakeLists.txt 2020-09-02 07:05:40.725370922 +0200 +@@ -20,6 +20,7 @@ + include(ECMInstallIcons) + include(ECMAddAppIcon) + include(ECMSetupVersion) ++include(ECMQtDeclareLoggingCategory) + include(FeatureSummary) + include(CheckIncludeFile) + +@@ -104,6 +105,12 @@ + add_subdirectory(doc) + add_subdirectory(icons) + ++ecm_qt_install_logging_categories( ++ EXPORT KRFB ++ FILE krfb.categories ++ DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} ++) ++ + feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) + ki18n_install(po) + if (KF5DocTools_FOUND) +Index: krfb-20.08.1/framebuffers/qt/CMakeLists.txt +=================================================================== +--- krfb-20.08.1.orig/framebuffers/qt/CMakeLists.txt 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/framebuffers/qt/CMakeLists.txt 2020-09-02 07:05:40.725370922 +0200 +@@ -7,6 +7,14 @@ + qtframebufferplugin.cpp + ) + ++ecm_qt_declare_logging_category(krfb_framebuffer_qt_SRCS ++ HEADER krfb_fb_qt_debug.h ++ IDENTIFIER KRFB_FB_QT ++ CATEGORY_NAME kf.rfb.framebuffer.qt ++ DESCRIPTION "KRFB Qt frambuffer plugin" ++ EXPORT KRFB ++) ++ + add_library(krfb_framebuffer_qt + MODULE + ${krfb_framebuffer_qt_SRCS} +Index: krfb-20.08.1/framebuffers/xcb/CMakeLists.txt +=================================================================== +--- krfb-20.08.1.orig/framebuffers/xcb/CMakeLists.txt 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/framebuffers/xcb/CMakeLists.txt 2020-09-02 07:05:40.725370922 +0200 +@@ -7,6 +7,14 @@ + xcb_framebuffer.cpp + ) + ++ecm_qt_declare_logging_category(krfb_framebuffer_xcb_SRCS ++ HEADER krfb_fb_xcb_debug.h ++ IDENTIFIER KRFB_FB_XCB ++ CATEGORY_NAME kf.rfb.framebuffer.xcb ++ DESCRIPTION "KRFB XCB frambuffer plugin" ++ EXPORT KRFB ++) ++ + add_library(krfb_framebuffer_xcb MODULE ${krfb_framebuffer_xcb_SRCS}) + + target_link_libraries (krfb_framebuffer_xcb +Index: krfb-20.08.1/framebuffers/xcb/xcb_framebuffer.cpp +=================================================================== +--- krfb-20.08.1.orig/framebuffers/xcb/xcb_framebuffer.cpp 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/framebuffers/xcb/xcb_framebuffer.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -8,6 +8,7 @@ + */ + + #include "xcb_framebuffer.h" ++#include "krfb_fb_xcb_debug.h" + + #include + #include +@@ -23,7 +24,6 @@ + #include + #include + #include +-#include + + + class KrfbXCBEventFilter: public QAbstractNativeEventFilter +@@ -68,7 +68,7 @@ + } + + #ifdef _DEBUG +- qDebug() << "xcb framebuffer: XDamage extension version:" << ++ qCDebug(KRFB_FB_XCB) << "xcb framebuffer: XDamage extension version:" << + xdamage_version->major_version << "." << xdamage_version->minor_version; + #endif + +@@ -163,7 +163,7 @@ + + QScreen *primaryScreen = QGuiApplication::primaryScreen(); + if (primaryScreen) { +- qDebug() << "xcb framebuffer: Primary screen: " << primaryScreen->name() ++ qCDebug(KRFB_FB_XCB) << "xcb framebuffer: Primary screen: " << primaryScreen->name() + << ", geometry: " << primaryScreen->geometry() + << ", depth: " << primaryScreen->depth(); + // +@@ -183,7 +183,7 @@ + XCB_IMAGE_FORMAT_Z_PIXMAP); + if (d->framebufferImage) { + #ifdef _DEBUG +- qDebug() << "xcb framebuffer: Got primary screen image. bpp: " << d->framebufferImage->bpp ++ qCDebug(KRFB_FB_XCB) << "xcb framebuffer: Got primary screen image. bpp: " << d->framebufferImage->bpp + << ", size (" << d->framebufferImage->width << d->framebufferImage->height << ")" + << ", depth: " << d->framebufferImage->depth + << ", padded width: " << d->framebufferImage->stride; +@@ -211,15 +211,15 @@ + nullptr); // data = 0 + if (d->updateTile) { + #ifdef _DEBUG +- qDebug() << "xcb framebuffer: Successfully created new empty image in native format"; +- qDebug() << " size: " << d->updateTile->width << "x" << d->updateTile->height +- << "(stride: " << d->updateTile->stride << ")"; +- qDebug() << " bpp, depth: " << d->updateTile->bpp << d->updateTile->depth; // 32, 24 +- qDebug() << " addr of base, data: " << d->updateTile->base << (void *)d->updateTile->data; +- qDebug() << " size: " << d->updateTile->size; +- qDebug() << " image byte order = " << d->updateTile->byte_order; // == 0 .._LSB_FIRST +- qDebug() << " image bit order = " << d->updateTile->bit_order; // == 1 .._MSB_FIRST +- qDebug() << " image plane_mask = " << d->updateTile->plane_mask; // == 16777215 == 0x00FFFFFF ++ qCDebug(KRFB_FB_XCB) << "xcb framebuffer: Successfully created new empty image in native format" ++ << "\n size: " << d->updateTile->width << "x" << d->updateTile->height ++ << "(stride: " << d->updateTile->stride << ")" ++ << "\n bpp, depth: " << d->updateTile->bpp << d->updateTile->depth // 32, 24 ++ << "\n addr of base, data: " << d->updateTile->base << (void *)d->updateTile->data ++ << "\n size: " << d->updateTile->size ++ << "\n image byte order = " << d->updateTile->byte_order // == 0 .._LSB_FIRST ++ << "\n image bit order = " << d->updateTile->bit_order // == 1 .._MSB_FIRST ++ << "\n image plane_mask = " << d->updateTile->plane_mask; // == 16777215 == 0x00FFFFFF + #endif + + // allocate shared memory block only once, make its size large enough +@@ -237,7 +237,7 @@ + xcb_shm_attach(QX11Info::connection(), d->shminfo.shmseg, d->shminfo.shmid, 0); + + #ifdef _DEBUG +- qDebug() << " shm id: " << d->shminfo.shmseg << ", addr: " << (void *)d->shminfo.shmaddr; ++ qCDebug(KRFB_FB_XCB) << " shm id: " << d->shminfo.shmseg << ", addr: " << (void *)d->shminfo.shmaddr; + #endif + + // will return 1 on success (yes!) +@@ -273,7 +273,7 @@ + } + + #ifdef _DEBUG +- qDebug() << "xcb framebuffer: XCBFrameBuffer(), xshm base event = " << d->x11EvtFilter->xshmBaseEvent ++ qCDebug(KRFB_FB_XCB) << "xcb framebuffer: XCBFrameBuffer(), xshm base event = " << d->x11EvtFilter->xshmBaseEvent + << ", xshm base error = " << d->x11EvtFilter->xdamageBaseError + << ", xdamage base event = " << d->x11EvtFilter->xdamageBaseEvent + << ", xdamage base error = " << d->x11EvtFilter->xdamageBaseError; +@@ -420,10 +420,12 @@ + format.blueMax = root_visualtype->blue_mask >> format.blueShift; + + #ifdef _DEBUG +- qDebug() << " Calculated redShift =" << (int)format.redShift; +- qDebug() << " Calculated greenShift =" << (int)format.greenShift; +- qDebug() << " Calculated blueShift =" << (int)format.blueShift; +- qDebug( " Calculated max values: R%d G%d B%d", ++ qCDebug(KRFB_FB_XCB, ++ " Calculated redShift = %d\n" ++ " Calculated greenShift = %d\n" ++ " Calculated blueShift = %d\n" ++ " Calculated max values: R%d G%d B%d", ++ format.redShift, format.greenShift, format.blueShift + format.redMax, format.greenMax, format.blueMax); + #endif + } else { +Index: krfb-20.08.1/krfb/CMakeLists.txt +=================================================================== +--- krfb-20.08.1.orig/krfb/CMakeLists.txt 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/krfb/CMakeLists.txt 2020-09-02 07:05:40.725370922 +0200 +@@ -66,6 +66,14 @@ + invitationsrfbclient.cpp + ) + ++ecm_qt_declare_logging_category(krfb_SRCS ++ HEADER krfbdebug.h ++ IDENTIFIER KRFB ++ CATEGORY_NAME kf.rfb ++ DESCRIPTION "KRFB Application" ++ EXPORT KRFB ++) ++ + kconfig_add_kcfg_files (krfb_SRCS + krfbconfig.kcfgc + ) +Index: krfb-20.08.1/krfb/eventsmanager.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/eventsmanager.cpp 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/krfb/eventsmanager.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -23,8 +23,8 @@ + #include "eventsplugin.h" + #include "krfbconfig.h" + #include "rfbservermanager.h" ++#include "krfbdebug.h" + +-#include + #include + + #include +@@ -79,18 +79,18 @@ + KPluginFactory *factory = KPluginLoader(data.fileName()).factory(); + + if (!factory) { +- qDebug() << "KPluginFactory could not load the plugin:" << data.fileName(); ++ qCDebug(KRFB) << "KPluginFactory could not load the plugin:" << data.fileName(); + continue; + } else { +- qDebug() << "found plugin at " << data.fileName(); ++ qCDebug(KRFB) << "found plugin at " << data.fileName(); + } + + EventsPlugin *plugin = factory->create(this); + if (plugin) { + m_plugins.insert(data.pluginId(), plugin); +- qDebug() << "Loaded plugin with name " << data.pluginId(); ++ qCDebug(KRFB) << "Loaded plugin with name " << data.pluginId(); + } else { +- qDebug() << "unable to load plugin for " << data.fileName(); ++ qCDebug(KRFB) << "unable to load plugin for " << data.fileName(); + } + unique.insert (data.name()); + } +@@ -113,6 +113,6 @@ + } + + // No valid events plugin found. +- qDebug() << "No valid event handlers found. returning null."; ++ qCDebug(KRFB) << "No valid event handlers found. returning null."; + return QSharedPointer(); + } +Index: krfb-20.08.1/krfb/framebuffermanager.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/framebuffermanager.cpp 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/krfb/framebuffermanager.cpp 2020-09-02 07:06:44.709582831 +0200 +@@ -22,8 +22,8 @@ + + #include "framebufferplugin.h" + #include "krfbconfig.h" ++#include "krfbdebug.h" + +-#include + #include + + #include +@@ -78,18 +78,18 @@ + KPluginFactory *factory = KPluginLoader(data.fileName()).factory(); + + if (!factory) { +- qDebug() << "KPluginFactory could not load the plugin:" << data.fileName(); ++ qDebug(KRFB) << "KPluginFactory could not load the plugin:" << data.fileName(); + continue; + } else { +- qDebug() << "found plugin at " << data.fileName(); ++ qDebug(KRFB) << "found plugin at " << data.fileName(); + } + + FrameBufferPlugin *plugin = factory->create(this); + if (plugin) { + m_plugins.insert(data.pluginId(), plugin); +- qDebug() << "Loaded plugin with name " << data.pluginId(); ++ qDebug(KRFB) << "Loaded plugin with name " << data.pluginId(); + } else { +- qDebug() << "unable to load plugin for " << data.fileName(); ++ qDebug(KRFB) << "unable to load plugin for " << data.fileName(); + } + unique.insert (data.name()); + } +@@ -118,7 +118,7 @@ + while (iter != m_plugins.constEnd()) { + + if (iter.key() == KrfbConfig::preferredFrameBufferPlugin()) { +- qDebug() << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin(); ++ qDebug(KRFB) << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin(); + + QSharedPointer frameBuffer(iter.value()->frameBuffer(id)); + +@@ -133,6 +133,6 @@ + } + + // No valid framebuffer plugin found. +- qDebug() << "No valid framebuffer found. returning null."; ++ qDebug(KRFB) << "No valid framebuffer found. returning null."; + return QSharedPointer(); + } +Index: krfb-20.08.1/krfb/invitationsrfbclient.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/invitationsrfbclient.cpp 2020-09-02 07:05:32.869344897 +0200 ++++ krfb-20.08.1/krfb/invitationsrfbclient.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -24,11 +24,11 @@ + #include "krfbconfig.h" + #include "sockethelpers.h" + #include "connectiondialog.h" ++#include "krfbdebug.h" + + #include + #include + +-#include + #include + #include + #include +@@ -115,7 +115,7 @@ + //the clientGoneHook which in turn will remove this RfbClient instance + //from the server manager and will call deleteLater() to delete it + if (d->client->sock == -1) { +- qDebug() << "disconnected from socket signal"; ++ qCDebug(KRFB) << "disconnected from socket signal"; + d->notifier->setEnabled(false); + rfbClientConnectionGone(d->client); + break; +@@ -125,7 +125,7 @@ + + bool PendingInvitationsRfbClient::checkPassword(const QByteArray & encryptedPassword) + { +- qDebug() << "about to start authentication"; ++ qCDebug(KRFB) << "about to start authentication"; + + if(InvitationsRfbServer::instance->allowUnattendedAccess() && vncAuthCheckPassword( + InvitationsRfbServer::instance->unattendedPassword().toLocal8Bit(), +Index: krfb-20.08.1/krfb/invitationsrfbserver.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/invitationsrfbserver.cpp 2020-09-02 07:05:32.873344910 +0200 ++++ krfb-20.08.1/krfb/invitationsrfbserver.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -22,10 +22,10 @@ + #include "invitationsrfbclient.h" + #include "krfbconfig.h" + #include "rfbservermanager.h" ++#include "krfbdebug.h" + #include + #include + #include +-#include + #include + + #include +@@ -188,7 +188,7 @@ + + } else { + +- qDebug() << "Could not open KWallet, Falling back to config file"; ++ qCDebug(KRFB) << "Could not open KWallet, Falling back to config file"; + KConfigGroup krfbConfig(KSharedConfig::openConfig(),"Security"); + + desktopPassword = KStringHandler::obscure(krfbConfig.readEntry( +Index: krfb-20.08.1/krfb/main.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/main.cpp 2020-09-02 07:05:32.873344910 +0200 ++++ krfb-20.08.1/krfb/main.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -20,6 +20,7 @@ + #include "invitationsrfbserver.h" + #include "krfbconfig.h" + #include "krfb_version.h" ++#include "krfbdebug.h" + + #include + #include +@@ -27,7 +28,6 @@ + #include + #include + +-#include + #include + #include + #include +@@ -59,13 +59,13 @@ + + static void checkOldX11PluginConfig() { + if (KrfbConfig::preferredFrameBufferPlugin() == QStringLiteral("x11")) { +- qDebug() << "Detected deprecated configuration: preferredFrameBufferPlugin = x11"; ++ qCDebug(KRFB) << "Detected deprecated configuration: preferredFrameBufferPlugin = x11"; + KConfigSkeletonItem *config_item = KrfbConfig::self()->findItem( + QStringLiteral("preferredFrameBufferPlugin")); + if (config_item) { + config_item->setProperty(QStringLiteral("xcb")); + KrfbConfig::self()->save(); +- qDebug() << " Fixed preferredFrameBufferPlugin from x11 to xcb."; ++ qCDebug(KRFB) << " Fixed preferredFrameBufferPlugin from x11 to xcb."; + } + } + } +@@ -81,7 +81,7 @@ + if (config_item) { + config_item->setProperty(QStringLiteral("pw")); + KrfbConfig::self()->save(); +- qDebug() << "Wayland: Fixed preferredFrameBufferPlugin to \"pw\"."; ++ qCDebug(KRFB) << "Wayland: Fixed preferredFrameBufferPlugin to \"pw\"."; + } + } + } +Index: krfb-20.08.1/krfb/rfbclient.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/rfbclient.cpp 2020-09-02 07:05:32.873344910 +0200 ++++ krfb-20.08.1/krfb/rfbclient.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -23,7 +23,6 @@ + #include "sockethelpers.h" + #include "eventsmanager.h" + #include +-#include + #include + #include //for bzero() + +Index: krfb-20.08.1/krfb/rfbserver.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/rfbserver.cpp 2020-09-02 07:05:32.873344910 +0200 ++++ krfb-20.08.1/krfb/rfbserver.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -19,11 +19,11 @@ + */ + #include "rfbserver.h" + #include "rfbservermanager.h" ++#include "krfbdebug.h" + #include + #include + #include + #include +-#include + #include + + struct RfbServer::Private +@@ -92,7 +92,7 @@ + if (!d->screen) { + d->screen = RfbServerManager::instance()->newScreen(); + if (!d->screen) { +- qDebug() << "Unable to get rbfserver screen"; ++ qCDebug(KRFB) << "Unable to get rbfserver screen"; + return false; + } + +@@ -125,14 +125,14 @@ + d->screen->authPasswdData = (void *)nullptr; + } + +- qDebug() << "Starting server. Listen port:" << listeningPort() ++ qCDebug(KRFB) << "Starting server. Listen port:" << listeningPort() + << "Listen Address:" << listeningAddress() + << "Password enabled:" << passwordRequired(); + + rfbInitServer(d->screen); + + if (!rfbIsActive(d->screen)) { +- qDebug() << "Failed to start server"; ++ qCDebug(KRFB) << "Failed to start server"; + rfbShutdownServer(d->screen, false); + return false; + }; +Index: krfb-20.08.1/krfb/rfbservermanager.cpp +=================================================================== +--- krfb-20.08.1.orig/krfb/rfbservermanager.cpp 2020-09-02 07:05:32.873344910 +0200 ++++ krfb-20.08.1/krfb/rfbservermanager.cpp 2020-09-02 07:05:40.725370922 +0200 +@@ -29,7 +29,6 @@ + #include + #include + #include +-#include + + #include + #include diff --git a/0001-Replace-KLineEdit-with-QLineEdit.patch b/0001-Replace-KLineEdit-with-QLineEdit.patch new file mode 100644 index 0000000..d0d44f6 --- /dev/null +++ b/0001-Replace-KLineEdit-with-QLineEdit.patch @@ -0,0 +1,84 @@ +From 58eab99e6b5fbcd7c9bb4f9a5f0bd5feb0b3edf3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Wed, 12 Aug 2020 18:27:23 +0200 +Subject: [PATCH] Replace KLineEdit with QLineEdit + +The password field uses none of the KLineEdit features like completion, +so QLineEdit suffices. +--- + CMakeLists.txt | 1 - + krfb/CMakeLists.txt | 1 - + krfb/mainwindow.cpp | 3 +-- + krfb/mainwindow.h | 4 ++-- + 4 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index aadd4b7..bd9ed41 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -29,7 +29,6 @@ find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core DBus Widgets X11Extr + + find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS + I18n +- Completion + Config + CoreAddons + Crash +diff --git a/krfb/CMakeLists.txt b/krfb/CMakeLists.txt +index a292226..43752b5 100644 +--- a/krfb/CMakeLists.txt ++++ b/krfb/CMakeLists.txt +@@ -93,7 +93,6 @@ target_link_libraries (krfb + ${X11_X11_LIB} + ${X11_Xdamage_LIB} + Qt5::Network +- KF5::Completion + KF5::CoreAddons + KF5::DBusAddons + KF5::DNSSD +diff --git a/krfb/mainwindow.cpp b/krfb/mainwindow.cpp +index 555d301..14924f6 100644 +--- a/krfb/mainwindow.cpp ++++ b/krfb/mainwindow.cpp +@@ -21,7 +21,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -107,7 +106,7 @@ MainWindow::MainWindow(QWidget *parent) + setAttribute(Qt::WA_DeleteOnClose, false); + + m_passwordEditable = false; +- m_passwordLineEdit = new KLineEdit(this); ++ m_passwordLineEdit = new QLineEdit(this); + m_passwordLineEdit->setVisible(false); + m_passwordLineEdit->setAlignment(Qt::AlignHCenter); + +diff --git a/krfb/mainwindow.h b/krfb/mainwindow.h +index 9f2939e..bbe69cd 100644 +--- a/krfb/mainwindow.h ++++ b/krfb/mainwindow.h +@@ -15,7 +15,7 @@ + + #include + +-class KLineEdit; ++class QLineEdit; + + class MainWindow : public KXmlGuiWindow + { +@@ -43,7 +43,7 @@ class MainWindow : public KXmlGuiWindow + private: + Ui::MainWidget m_ui; + bool m_passwordEditable; +- KLineEdit *m_passwordLineEdit; ++ QLineEdit *m_passwordLineEdit; + }; + + #endif +-- +2.28.0 + diff --git a/0003-Compensate-for-global-scale-factor-when-using-xcb-fb.patch b/0003-Compensate-for-global-scale-factor-when-using-xcb-fb.patch new file mode 100644 index 0000000..485e2ba --- /dev/null +++ b/0003-Compensate-for-global-scale-factor-when-using-xcb-fb.patch @@ -0,0 +1,40 @@ +From a5656776a21f8b6f893431f9e18327a24ad1fa9c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Thu, 13 Aug 2020 09:30:06 +0200 +Subject: [PATCH 3/3] Compensate for global scale factor when using xcb fb + plugin + +The screen geometry is reported in device independent pixels, so it has +to be multiplied by the devicePixelRatio to get the size of the underlying +framebuffer. Otherwise, only the top left of the screen will be captured. + +This matches the behavior of QScreen::grabWindow(...), which also +returns a QPixmap of the given size scaled by devicePixelRatio. +--- + framebuffers/xcb/xcb_framebuffer.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/framebuffers/xcb/xcb_framebuffer.cpp b/framebuffers/xcb/xcb_framebuffer.cpp +index 07569bf..626b3ad 100644 +--- a/framebuffers/xcb/xcb_framebuffer.cpp ++++ b/framebuffers/xcb/xcb_framebuffer.cpp +@@ -163,11 +163,15 @@ XCBFrameBuffer::XCBFrameBuffer(WId winid, QObject *parent): + + QScreen *primaryScreen = QGuiApplication::primaryScreen(); + if (primaryScreen) { ++ qreal scaleFactor = primaryScreen->devicePixelRatio(); ++ d->area = { primaryScreen->geometry().topLeft() * scaleFactor, ++ primaryScreen->geometry().bottomRight() * scaleFactor }; + qCDebug(KRFB_FB_XCB) << "xcb framebuffer: Primary screen: " << primaryScreen->name() + << ", geometry: " << primaryScreen->geometry() ++ << ", device scaling: " << scaleFactor ++ << ", native size: " << d->area + << ", depth: " << primaryScreen->depth(); + // +- d->area = primaryScreen->geometry(); + } else { + qWarning() << "xcb framebuffer: ERROR: Failed to get application's primary screen info!"; + return; +-- +2.28.0 + diff --git a/krfb-20.08.0.tar.xz b/krfb-20.08.0.tar.xz deleted file mode 100644 index 06be0f8..0000000 --- a/krfb-20.08.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7ca46cc216ecd3790d045a36a642c834a9af4024409075e7a5bf8b498c67e4b -size 1280444 diff --git a/krfb-20.08.0.tar.xz.sig b/krfb-20.08.0.tar.xz.sig deleted file mode 100644 index d07bbb2..0000000 --- a/krfb-20.08.0.tar.xz.sig +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEzBAABCgAdFiEE8jJ15L8Qr8HfaRSm29LOiT4tHIcFAl8tAgwACgkQ29LOiT4t -HIeVZQf/V40sZeDyJsg5enQO9xBrmINqxdreM1lza9YOFL+DuQwdRVPSDnv4lO5j -l5aWRk1BlKtgKb1nn0tlVwn3LWIDHInJY911Cl8/z/yKyhLhnhMjRFhyX7YanyR1 -cdzCzMAAmmB9jTU9FOKimBMlvMBZsb6P0KpFcJtBMXFSlGMqGJm8UMBbxSTWLAUw -XSfj+x3cDdg4OAU/CFlHiN8UBD55sR/I+7B7njbyszSuIDsXVpTlYYILWugk8pMr -ue2IzROd1FpioTXVb1l5X40d4qpBJ5JvvQbr2QhHXHHVwL8rKsT0ycuYfc9rD/yW -C3wP5noMFogy0R+NLnQz4B87EUfMuQ== -=3VSy ------END PGP SIGNATURE----- diff --git a/krfb-20.08.1.tar.xz b/krfb-20.08.1.tar.xz new file mode 100644 index 0000000..af34820 --- /dev/null +++ b/krfb-20.08.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a80b9bab47f2a7299e33b0e2a10b117605ec1cc572ca72e914c7f01dde383eda +size 1280460 diff --git a/krfb-20.08.1.tar.xz.sig b/krfb-20.08.1.tar.xz.sig new file mode 100644 index 0000000..34664d4 --- /dev/null +++ b/krfb-20.08.1.tar.xz.sig @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQEzBAABCgAdFiEE8jJ15L8Qr8HfaRSm29LOiT4tHIcFAl9N7n4ACgkQ29LOiT4t +HIeD2QgAmqpMQRBIjNzuu1DB9LMbqurkKP/a8Gv54tKTMw7R2In2ZaVCILjS9FS6 +wKrNspIouJORSELpL7AqXW8vUTDVqiGPUHwW/vZarm+INcsZGhtAoOPs63wm32ya +X+fmNWNcAvHLiTNQ/3BVsA120LZKI+MT8UxKsPLSVkTcNJdfjdPZKK1cUwekF3uS +1q6voS5VO/JsY+8opoqCzYBvX/3zaeIHBiXP2pCq7ViteMZDvnMKlglGV61Aossa +s5QrYrxvF0qczv+iZwcOfTihrGHcatLb5P3m0WQUYYzbZs/1nnea9flySu2NttWI +ihcH4aoIq2be6toERkQO6AtVtWy4IA== +=K8Q2 +-----END PGP SIGNATURE----- diff --git a/krfb.changes b/krfb.changes index 674f297..bcc4045 100644 --- a/krfb.changes +++ b/krfb.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Sep 1 20:50:40 UTC 2020 - Luca Beltrame + +- Update to 20.08.1 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/releases/2020-09-apps-update +- No code change since 20.08.0 +- Rebased patches against 20.08.1: + - 0001-Declare-and-use-logging-categories.patch + +------------------------------------------------------------------- +Mon Aug 31 15:57:48 UTC 2020 - Stefan BrĂ¼ns + +- Fix wrong framebuffer size when display scale is not 1.0 + * Add 0001-Declare-and-use-logging-categories.patch + * Add 0003-Compensate-for-global-scale-factor-when-using-xcb-fb.patch +- Cleanup build dependencies (remove KF5Completion and telepathy): + * Add 0001-Replace-KLineEdit-with-QLineEdit.patch + ------------------------------------------------------------------- Sun Aug 9 09:09:57 UTC 2020 - Christophe Giboudeaux diff --git a/krfb.spec b/krfb.spec index 17ce988..4986de7 100644 --- a/krfb.spec +++ b/krfb.spec @@ -21,20 +21,24 @@ %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')} %bcond_without lang Name: krfb -Version: 20.08.0 +Version: 20.08.1 Release: 0 Summary: Screen sharing using the VNC/RFB protocol License: GPL-2.0-or-later Group: Productivity/Networking/Other Source: https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM +Patch0: 0001-Declare-and-use-logging-categories.patch +# PATCH-FIX-UPSTREAM +Patch1: 0001-Replace-KLineEdit-with-QLineEdit.patch +# PATCH-FIX-UPSTREAM +Patch2: 0003-Compensate-for-global-scale-factor-when-using-xcb-fb.patch BuildRequires: LibVNCServer-devel BuildRequires: extra-cmake-modules BuildRequires: pipewire-devel BuildRequires: pkgconfig -BuildRequires: telepathy-qt5-devel BuildRequires: update-desktop-files BuildRequires: xcb-util-image-devel -BuildRequires: cmake(KF5Completion) BuildRequires: cmake(KF5Config) BuildRequires: cmake(KF5CoreAddons) BuildRequires: cmake(KF5Crash) @@ -68,12 +72,15 @@ VNC-compatible server to share KDE desktops. %prep %setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 %build %ifarch ppc ppc64 export RPM_OPT_FLAGS="%{optflags} -mminimal-toc" %endif - %cmake_kf5 -d build -- -DBUILD_EXPERIMENTAL_TUBES_SUPPORT="on" + %cmake_kf5 -d build -- %cmake_build %install @@ -99,6 +106,7 @@ export RPM_OPT_FLAGS="%{optflags} -mminimal-toc" %{_kf5_servicetypesdir}/krfb-framebuffer*.desktop %{_kf5_servicetypesdir}/krfb-events.desktop %{_kf5_sharedir}/krfb/ +%{_kf5_debugdir}/krfb.categories %if %{with lang} %files lang -f %{name}.lang