diff options
Diffstat (limited to 'user/sddm/qt515.patch')
-rw-r--r-- | user/sddm/qt515.patch | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/user/sddm/qt515.patch b/user/sddm/qt515.patch new file mode 100644 index 000000000..df58ca9fe --- /dev/null +++ b/user/sddm/qt515.patch @@ -0,0 +1,199 @@ +From 3eaa0d6ab1c7efc0bdd91fcd789d8187c6c27678 Mon Sep 17 00:00:00 2001 +From: Aleix Pol <aleixpol@kde.org> +Date: Thu, 24 Jun 2021 12:34:13 +0200 +Subject: [PATCH] Bump to Qt 5.15, port away from deprecated APIs + +--- + CMakeLists.txt | 2 +- + README.md | 2 +- + src/auth/Auth.cpp | 6 +++--- + src/auth/AuthRequest.cpp | 2 +- + src/common/ConfigReader.cpp | 4 ++-- + src/daemon/PowerManager.cpp | 8 ++++++-- + src/daemon/XorgDisplayServer.cpp | 17 +++++++++-------- + src/greeter/GreeterProxy.cpp | 2 +- + 8 files changed, 24 insertions(+), 19 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 41aee21d4..6936b31f6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -96,7 +96,7 @@ find_package(XCB REQUIRED) + find_package(XKB REQUIRED) + + # Qt 5 +-find_package(Qt5 5.8.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test) ++find_package(Qt5 5.15.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test) + + # find qt5 imports dir + get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) +diff --git a/README.md b/README.md +index 7c7a55588..97cb2221c 100644 +--- a/README.md ++++ b/README.md +@@ -39,7 +39,7 @@ money that can be used to support the features that you most desire. + + ## INSTALLATION + +-Qt >= 5.8.0 is required to use SDDM. ++Qt >= 5.15.0 is required to use SDDM. + + SDDM runs the greeter as a system user named "sddm" whose home directory needs + to be set to `/var/lib/sddm`. +diff --git a/src/auth/Auth.cpp b/src/auth/Auth.cpp +index 4450cc606..1dc2dd186 100644 +--- a/src/auth/Auth.cpp ++++ b/src/auth/Auth.cpp +@@ -134,7 +134,7 @@ namespace SDDM { + env.insert(QStringLiteral("LANG"), QStringLiteral("C")); + child->setProcessEnvironment(env); + connect(child, QOverload<int,QProcess::ExitStatus>::of(&QProcess::finished), this, &Auth::Private::childExited); +- connect(child, QOverload<QProcess::ProcessError>::of(&QProcess::error), this, &Auth::Private::childError); ++ connect(child, &QProcess::errorOccurred, this, &Auth::Private::childError); + connect(request, &AuthRequest::finished, this, &Auth::Private::requestFinished); + connect(request, &AuthRequest::promptsChanged, parent, &Auth::requestChanged); + } +@@ -267,8 +267,8 @@ namespace SDDM { + } + + void Auth::registerTypes() { +- qmlRegisterType<AuthPrompt>(); +- qmlRegisterType<AuthRequest>(); ++ qmlRegisterAnonymousType<AuthPrompt>("Auth", 1); ++ qmlRegisterAnonymousType<AuthRequest>("Auth", 1); + qmlRegisterType<Auth>("Auth", 1, 0, "Auth"); + } + +diff --git a/src/auth/AuthRequest.cpp b/src/auth/AuthRequest.cpp +index 9583b0a4d..9ccc2d259 100644 +--- a/src/auth/AuthRequest.cpp ++++ b/src/auth/AuthRequest.cpp +@@ -73,7 +73,7 @@ namespace SDDM { + } + + QQmlListProperty<AuthPrompt> AuthRequest::promptsDecl() { +- return QQmlListProperty<AuthPrompt>(this, d->prompts); ++ return QQmlListProperty<AuthPrompt>(this, &d->prompts); + } + + void AuthRequest::done() { +diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp +index 041e5ed22..503b55e69 100644 +--- a/src/common/ConfigReader.cpp ++++ b/src/common/ConfigReader.cpp +@@ -265,7 +265,7 @@ namespace SDDM { + QByteArray junk; + // stores the junk to the temporary storage + auto collectJunk = [&junk](const QString &data) { +- junk.append(data); ++ junk.append(data.toUtf8()); + }; + + // a short function to assign the current junk and current line to the right section, eventually create a new one +@@ -275,7 +275,7 @@ namespace SDDM { + sectionData[currentSection] = QByteArray(); + } + sectionData[currentSection].append(junk); +- sectionData[currentSection].append(data); ++ sectionData[currentSection].append(data.toUtf8()); + junk.clear(); + }; + +diff --git a/src/daemon/PowerManager.cpp b/src/daemon/PowerManager.cpp +index 6eca29f55..ab1d6ac03 100644 +--- a/src/daemon/PowerManager.cpp ++++ b/src/daemon/PowerManager.cpp +@@ -87,11 +87,15 @@ const QString UPOWER_OBJECT = QStringLiteral("org.freedesktop.UPower"); + } + + void powerOff() const { +- QProcess::execute(mainConfig.HaltCommand.get()); ++ auto command = QProcess::splitCommand(mainConfig.HaltCommand.get()); ++ const QString program = command.takeFirst(); ++ QProcess::execute(program, command); + } + + void reboot() const { +- QProcess::execute(mainConfig.RebootCommand.get()); ++ auto command = QProcess::splitCommand(mainConfig.RebootCommand.get()); ++ const QString program = command.takeFirst(); ++ QProcess::execute(program, command); + } + + void suspend() const { +diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp +index fc61ee2dd..13a1691b8 100644 +--- a/src/daemon/XorgDisplayServer.cpp ++++ b/src/daemon/XorgDisplayServer.cpp +@@ -110,7 +110,7 @@ namespace SDDM { + QStringList args; + if (!daemonApp->testing()) { + process->setProgram(mainConfig.X11.ServerPath.get()); +- args << mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts) ++ args << mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), Qt::SkipEmptyParts) + << QStringLiteral("-background") << QStringLiteral("none") + << QStringLiteral("-seat") << displayPtr()->seat()->name() + << QStringLiteral("vt%1").arg(displayPtr()->terminalId()); +@@ -221,7 +221,7 @@ namespace SDDM { + // log message + qDebug() << "Display server stopped."; + +- QString displayStopCommand = mainConfig.X11.DisplayStopCommand.get(); ++ QStringList displayStopCommand = QProcess::splitCommand(mainConfig.X11.DisplayStopCommand.get()); + + // create display setup script process + QProcess *displayStopScript = new QProcess(); +@@ -236,7 +236,8 @@ namespace SDDM { + + // start display stop script + qDebug() << "Running display stop script " << displayStopCommand; +- displayStopScript->start(displayStopCommand); ++ const auto program = displayStopCommand.takeFirst(); ++ displayStopScript->start(program, displayStopCommand); + + // wait for finished + if (!displayStopScript->waitForFinished(5000)) +@@ -254,8 +255,6 @@ namespace SDDM { + } + + void XorgDisplayServer::setupDisplay() { +- QString displayCommand = mainConfig.X11.DisplayCommand.get(); +- + // create cursor setup process + QProcess *setCursor = new QProcess(); + // create display setup script process +@@ -273,7 +272,7 @@ namespace SDDM { + displayScript->setProcessEnvironment(env); + + qDebug() << "Setting default cursor"; +- setCursor->start(QStringLiteral("xsetroot -cursor_name left_ptr")); ++ setCursor->start(QStringLiteral("xsetroot"), { QStringLiteral("-cursor_name"), QStringLiteral("left_ptr") }); + + // delete setCursor on finish + connect(setCursor, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), setCursor, &QProcess::deleteLater); +@@ -285,8 +284,10 @@ namespace SDDM { + } + + // start display setup script +- qDebug() << "Running display setup script " << displayCommand; +- displayScript->start(displayCommand); ++ qDebug() << "Running display setup script " << mainConfig.X11.DisplayCommand.get(); ++ QStringList displayCommand = QProcess::splitCommand(mainConfig.X11.DisplayCommand.get()); ++ const QString program = displayCommand.takeFirst(); ++ displayScript->start(program, displayCommand); + + // delete displayScript on finish + connect(displayScript, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), displayScript, &QProcess::deleteLater); +diff --git a/src/greeter/GreeterProxy.cpp b/src/greeter/GreeterProxy.cpp +index 8fde3d904..d6e62cc75 100644 +--- a/src/greeter/GreeterProxy.cpp ++++ b/src/greeter/GreeterProxy.cpp +@@ -46,7 +46,7 @@ namespace SDDM { + connect(d->socket, &QLocalSocket::connected, this, &GreeterProxy::connected); + connect(d->socket, &QLocalSocket::disconnected, this, &GreeterProxy::disconnected); + connect(d->socket, &QLocalSocket::readyRead, this, &GreeterProxy::readyRead); +- connect(d->socket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error), this, &GreeterProxy::error); ++ connect(d->socket, &QLocalSocket::errorOccurred, this, &GreeterProxy::error); + + // connect to server + d->socket->connectToServer(socket); |