From 13f35715e2638f533db67f916a46f56bd84e6398 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Wed, 2 Sep 2015 09:51:20 +0200 Subject: Updated/added patches for KDE-5_15.09 --- kde/patch/akonadi4.patch | 4 + ...nadi_dont-leak-old-external-payload-files.patch | 138 +++++++++++++++++++++ kde/patch/kdepim.patch | 2 +- .../kdepim/kdepim-install_kleopatra_headers.patch | 63 +++++----- kde/patch/libkdcraw.patch | 3 + kde/patch/libkdcraw/libkdcraw_cmake_minver.patch | 7 ++ kde/patch/libkexiv2.patch | 3 + kde/patch/libkexiv2/libkexiv2_cmake_minver.patch | 7 ++ kde/patch/marble.patch | 3 + kde/patch/marble/marble_qt4.patch | 47 +++++++ kde/patch/sddm-qt5.patch | 5 +- kde/patch/sddm-qt5/sddm_qstring.patch | 88 +++++++++++++ 12 files changed, 340 insertions(+), 30 deletions(-) create mode 100644 kde/patch/akonadi4.patch create mode 100644 kde/patch/akonadi4/akonadi_dont-leak-old-external-payload-files.patch create mode 100644 kde/patch/libkdcraw.patch create mode 100644 kde/patch/libkdcraw/libkdcraw_cmake_minver.patch create mode 100644 kde/patch/libkexiv2.patch create mode 100644 kde/patch/libkexiv2/libkexiv2_cmake_minver.patch create mode 100644 kde/patch/marble.patch create mode 100644 kde/patch/marble/marble_qt4.patch create mode 100644 kde/patch/sddm-qt5/sddm_qstring.patch diff --git a/kde/patch/akonadi4.patch b/kde/patch/akonadi4.patch new file mode 100644 index 0000000..388c3ea --- /dev/null +++ b/kde/patch/akonadi4.patch @@ -0,0 +1,4 @@ +# Backport a patch from git master since there will not be another +# official akonadi release after the current 1.13: +cat $CWD/patch/akonadi4/akonadi_dont-leak-old-external-payload-files.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/akonadi4/akonadi_dont-leak-old-external-payload-files.patch b/kde/patch/akonadi4/akonadi_dont-leak-old-external-payload-files.patch new file mode 100644 index 0000000..f963636 --- /dev/null +++ b/kde/patch/akonadi4/akonadi_dont-leak-old-external-payload-files.patch @@ -0,0 +1,138 @@ +# +# Patch gratefully taken from https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/akonadi-qt4 +# +From: Dan Vrátil +Date: Mon, 29 Jun 2015 20:45:11 +0000 +Subject: Don't leak old external payload files +X-Git-Url: http://quickgit.kde.org/?p=akonadi.git&a=commitdiff&h=9c0dc6b3f0826d32eac310b2e7ecd858ca3df681 +--- +Don't leak old external payload files + +Actually delete old payload files after we increase the payload revision or +switch from external to internal payload. This caused ~/.local/share/akonadi/file_db_data +to grow insanely for all users, leaving them with many duplicated files (just with +different revisions). + +It is recommended that users run akonadictl fsck to clean up the leaked payload +files. + +Note that there won't be any more releases of Akonadi 1.13 (and this has been +fixed in master already), so I strongly recommend distributions to pick this +patch into their packaging. + +BUG: 341884 +CCBUG: 338402 +--- + + +--- a/server/src/storage/partstreamer.cpp ++++ b/server/src/storage/partstreamer.cpp +@@ -290,6 +290,12 @@ + mDataChanged = true; + } + ++ // If the part is external, remember it's current file name ++ QString originalFile; ++ if (part.isValid() && part.external()) { ++ originalFile = PartHelper::resolveAbsolutePath(part.data()); ++ } ++ + part.setPartType(partType); + part.setVersion(partVersion); + part.setPimItemId(mItem.id()); +@@ -306,6 +312,14 @@ + *changed = mDataChanged; + } + ++ if (!originalFile.isEmpty()) { ++ // If the part was external but is not anymore, or if it's still external ++ // but the filename has changed (revision update), remove the original file ++ if (!part.external() || (part.external() && originalFile != PartHelper::resolveAbsolutePath(part.data()))) { ++ PartHelper::removeFile(originalFile); ++ } ++ } ++ + return ok; + } + + +--- a/server/tests/unittest/partstreamertest.cpp ++++ b/server/tests/unittest/partstreamertest.cpp +@@ -91,6 +91,7 @@ + QTest::addColumn("expectedPartSize"); + QTest::addColumn("expectedChanged"); + QTest::addColumn("isExternal"); ++ QTest::addColumn("version"); + QTest::addColumn("pimItem"); + + PimItem item; +@@ -101,22 +102,22 @@ + QVERIFY(item.insert()); + + // Order of these tests matters! +- QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << item; +- QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << item; +- QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << item; +- QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << item; +- QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << item; +- QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << item; ++ QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << -1 << item; ++ QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << 0 << item; ++ QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << 1 << item; ++ QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << 2 << item; ++ QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << 2 << item; ++ QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << 2 << item; + } + + void testStreamer() + { +- return; + QFETCH(QByteArray, expectedPartName); + QFETCH(QByteArray, expectedData); + QFETCH(qint64, expectedPartSize); + QFETCH(bool, expectedChanged); + QFETCH(bool, isExternal); ++ QFETCH(int, version); + QFETCH(PimItem, pimItem); + + FakeConnection connection; +@@ -160,17 +161,18 @@ + + PimItem item = PimItem::retrieveById(pimItem.id()); + const QVector parts = item.parts(); +- QVERIFY(parts.count() == 1); ++ QCOMPARE(parts.count(), 1); + const Part part = parts[0]; + QCOMPARE(part.datasize(), expectedPartSize); + QCOMPARE(part.external(), isExternal); ++ qDebug() << part.version() << part.data(); + const QByteArray data = part.data(); + if (isExternal) { + QVERIFY(streamerSpy.count() == 1); + QVERIFY(streamerSpy.first().count() == 1); + const Response response = streamerSpy.first().first().value(); + const QByteArray str = response.asString(); +- const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()) + "]"; ++ const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(version) + "]"; + QCOMPARE(QString::fromUtf8(str), QString::fromUtf8(expectedResponse)); + + QFile file(PartHelper::resolveAbsolutePath(data)); +@@ -182,7 +184,7 @@ + QCOMPARE(fileData, expectedData); + + // Make sure no previous versions are left behind in file_db_data +- for (int i = 0; i < part.version(); ++i) { ++ for (int i = 0; i < version; ++i) { + const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); + const QString filePath = PartHelper::resolveAbsolutePath(fileName); + QVERIFY(!QFile::exists(filePath)); +@@ -194,7 +196,7 @@ + QCOMPARE(data, expectedData); + + // Make sure nothing is left behind in file_db_data +- for (int i = 0; i <= part.version(); ++i) { ++ for (int i = 0; i <= version; ++i) { + const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); + const QString filePath = PartHelper::resolveAbsolutePath(fileName); + QVERIFY(!QFile::exists(filePath)); + diff --git a/kde/patch/kdepim.patch b/kde/patch/kdepim.patch index f8b34ac..c5aeb9c 100644 --- a/kde/patch/kdepim.patch +++ b/kde/patch/kdepim.patch @@ -1,4 +1,4 @@ # Install Kleopatra headers, needed by kopete-cryptography: # This used to be fixed? -cat $CWD/patch/kdepim/kdepim-install_kleopatra_headers.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +#cat $CWD/patch/kdepim/kdepim-install_kleopatra_headers.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/kde/patch/kdepim/kdepim-install_kleopatra_headers.patch b/kde/patch/kdepim/kdepim-install_kleopatra_headers.patch index 8960ab8..18662fd 100644 --- a/kde/patch/kdepim/kdepim-install_kleopatra_headers.patch +++ b/kde/patch/kdepim/kdepim-install_kleopatra_headers.patch @@ -1,21 +1,25 @@ -diff -up kdepim-4.11.90/kleopatra/libkleopatraclient/CMakeLists.txt.install_kleopatra_headers kdepim-4.11.90/kleopatra/libkleopatraclient/CMakeLists.txt ---- kdepim-4.11.90/kleopatra/libkleopatraclient/CMakeLists.txt.install_kleopatra_headers 2013-11-14 02:23:52.000000000 -0600 -+++ kdepim-4.11.90/kleopatra/libkleopatraclient/CMakeLists.txt 2013-11-16 13:17:30.289810575 -0600 -@@ -6,3 +6,7 @@ add_subdirectory(gui) - - add_subdirectory(tests) +diff -uarN kdepim-15.08.0.orig/kleopatra/libkleopatraclient/CMakeLists.txt kdepim-15.08.0/kleopatra/libkleopatraclient/CMakeLists.txt +--- kdepim-15.08.0.orig/kleopatra/libkleopatraclient/CMakeLists.txt 2015-08-10 21:56:00.000000000 +0200 ++++ kdepim-15.08.0/kleopatra/libkleopatraclient/CMakeLists.txt 2015-08-24 23:05:07.650076668 +0200 +@@ -4,6 +4,11 @@ + add_subdirectory(core) + add_subdirectory(gui) +install( + FILES kleopatraclient_export.h + DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient + ) -diff -up kdepim-4.11.90/kleopatra/libkleopatraclient/core/CMakeLists.txt.install_kleopatra_headers kdepim-4.11.90/kleopatra/libkleopatraclient/core/CMakeLists.txt ---- kdepim-4.11.90/kleopatra/libkleopatraclient/core/CMakeLists.txt.install_kleopatra_headers 2013-11-14 02:23:52.000000000 -0600 -+++ kdepim-4.11.90/kleopatra/libkleopatraclient/core/CMakeLists.txt 2013-11-16 13:17:30.290810557 -0600 -@@ -72,3 +72,13 @@ else() ++ + if(BUILD_TESTING) + add_subdirectory(tests) endif() +diff -uarN kdepim-15.08.0.orig/kleopatra/libkleopatraclient/core/CMakeLists.txt kdepim-15.08.0/kleopatra/libkleopatraclient/core/CMakeLists.txt +--- kdepim-15.08.0.orig/kleopatra/libkleopatraclient/core/CMakeLists.txt 2015-08-10 21:56:00.000000000 +0200 ++++ kdepim-15.08.0/kleopatra/libkleopatraclient/core/CMakeLists.txt 2015-08-24 22:52:15.613045160 +0200 +@@ -67,3 +67,13 @@ + target_link_libraries(kleopatraclientcore Qt5::Widgets KF5::I18n) - install(TARGETS kleopatraclientcore ${INSTALL_TARGETS_DEFAULT_ARGS}) + install(TARGETS kleopatraclientcore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +install( + FILES @@ -26,25 +30,25 @@ diff -up kdepim-4.11.90/kleopatra/libkleopatraclient/core/CMakeLists.txt.install + decryptverifyfilescommand.h + DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/core + ) -diff -up kdepim-4.11.90/kleopatra/libkleopatraclient/gui/CMakeLists.txt.install_kleopatra_headers kdepim-4.11.90/kleopatra/libkleopatraclient/gui/CMakeLists.txt ---- kdepim-4.11.90/kleopatra/libkleopatraclient/gui/CMakeLists.txt.install_kleopatra_headers 2013-11-14 02:23:52.000000000 -0600 -+++ kdepim-4.11.90/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2013-11-16 13:17:30.290810557 -0600 -@@ -16,3 +16,9 @@ set_target_properties(kleopatraclientgui +diff -uarN kdepim-15.08.0.orig/kleopatra/libkleopatraclient/gui/CMakeLists.txt kdepim-15.08.0/kleopatra/libkleopatraclient/gui/CMakeLists.txt +--- kdepim-15.08.0.orig/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2015-08-10 21:56:00.000000000 +0200 ++++ kdepim-15.08.0/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2015-08-24 22:52:15.613045160 +0200 +@@ -16,3 +16,9 @@ ) - install(TARGETS kleopatraclientgui ${INSTALL_TARGETS_DEFAULT_ARGS}) + install(TARGETS kleopatraclientgui ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +install( + FILES + certificaterequester.h + DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/gui + ) -diff -up kdepim-4.11.90/libkleo/CMakeLists.txt.install_kleopatra_headers kdepim-4.11.90/libkleo/CMakeLists.txt ---- kdepim-4.11.90/libkleo/CMakeLists.txt.install_kleopatra_headers 2013-11-14 02:23:52.000000000 -0600 -+++ kdepim-4.11.90/libkleo/CMakeLists.txt 2013-11-16 13:17:30.290810557 -0600 -@@ -121,3 +121,61 @@ install ( FILES libkleopatrarc-win32.des +diff -uarN kdepim-15.08.0.orig/libkleo/CMakeLists.txt kdepim-15.08.0/libkleo/CMakeLists.txt +--- kdepim-15.08.0.orig/libkleo/CMakeLists.txt 2015-08-10 21:56:00.000000000 +0200 ++++ kdepim-15.08.0/libkleo/CMakeLists.txt 2015-08-24 22:52:15.613045160 +0200 +@@ -126,3 +126,61 @@ else () - install ( FILES libkleopatrarc.desktop DESTINATION ${CONFIG_INSTALL_DIR} RENAME libkleopatrarc ) + install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) endif () + +install( FILES @@ -104,12 +108,12 @@ diff -up kdepim-4.11.90/libkleo/CMakeLists.txt.install_kleopatra_headers kdepim- + ui/directoryserviceswidget.h + ui/filenamerequester.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kleo/ui COMPONENT Devel) -diff -up kdepim-4.11.90/libkpgp/CMakeLists.txt.install_kleopatra_headers kdepim-4.11.90/libkpgp/CMakeLists.txt ---- kdepim-4.11.90/libkpgp/CMakeLists.txt.install_kleopatra_headers 2013-11-16 13:17:30.290810557 -0600 -+++ kdepim-4.11.90/libkpgp/CMakeLists.txt 2013-11-16 13:20:55.258111864 -0600 -@@ -35,3 +35,11 @@ add_subdirectory( tests ) - install(FILES kconf_update/kpgp.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) - install(PROGRAMS kconf_update/kpgp-3.1-upgrade-address-data.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) +diff -uarN kdepim-15.08.0.orig/libkpgp/CMakeLists.txt kdepim-15.08.0/libkpgp/CMakeLists.txt +--- kdepim-15.08.0.orig/libkpgp/CMakeLists.txt 2015-08-10 21:56:00.000000000 +0200 ++++ kdepim-15.08.0/libkpgp/CMakeLists.txt 2015-08-24 23:04:02.505074051 +0200 +@@ -44,6 +44,15 @@ + set_target_properties(kpgp PROPERTIES VERSION ${KDEPIM_LIB_VERSION} SOVERSION ${KDEPIM_LIB_SOVERSION}) + install(TARGETS kpgp ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(FILES + kpgp.h @@ -119,4 +123,7 @@ diff -up kdepim-4.11.90/libkpgp/CMakeLists.txt.install_kleopatra_headers kdepim- + kpgpui.h + libkpgp_export.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kpgp COMPONENT Devel ) - ++ + if(BUILD_TESTING) + add_subdirectory( tests ) + endif() diff --git a/kde/patch/libkdcraw.patch b/kde/patch/libkdcraw.patch new file mode 100644 index 0000000..fd8cf51 --- /dev/null +++ b/kde/patch/libkdcraw.patch @@ -0,0 +1,3 @@ +# Backport a patch from git to support our newer cmake: +#cat $CWD/patch/libkdcraw/libkdcraw_cmake_minver.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/libkdcraw/libkdcraw_cmake_minver.patch b/kde/patch/libkdcraw/libkdcraw_cmake_minver.patch new file mode 100644 index 0000000..3446a19 --- /dev/null +++ b/kde/patch/libkdcraw/libkdcraw_cmake_minver.patch @@ -0,0 +1,7 @@ +--- libkdcraw-15.08.0.orig/CMakeLists.txt 2015-05-14 22:54:16.000000000 +0200 ++++ libkdcraw-15.08.0/CMakeLists.txt 2015-08-25 13:37:50.880746449 +0200 +@@ -1,3 +1,4 @@ ++cmake_minimum_required(VERSION 2.8.9) + # + # Copyright (c) 2010-2014, Gilles Caulier, + # diff --git a/kde/patch/libkexiv2.patch b/kde/patch/libkexiv2.patch new file mode 100644 index 0000000..5a61c23 --- /dev/null +++ b/kde/patch/libkexiv2.patch @@ -0,0 +1,3 @@ +# Backport a patch from git to support our newer cmake: +#cat $CWD/patch/libkexiv2/libkexiv2_cmake_minver.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/libkexiv2/libkexiv2_cmake_minver.patch b/kde/patch/libkexiv2/libkexiv2_cmake_minver.patch new file mode 100644 index 0000000..a83861c --- /dev/null +++ b/kde/patch/libkexiv2/libkexiv2_cmake_minver.patch @@ -0,0 +1,7 @@ +--- libkexiv2-15.08.0.orig/CMakeLists.txt 2015-04-30 21:04:22.000000000 +0200 ++++ libkexiv2-15.08.0/CMakeLists.txt 2015-08-25 13:14:34.093738317 +0200 +@@ -1,3 +1,4 @@ ++cmake_minimum_required(VERSION 2.8.9) + # + # Copyright (c) 2010-2014, Gilles Caulier, + # diff --git a/kde/patch/marble.patch b/kde/patch/marble.patch new file mode 100644 index 0000000..ba4fbde --- /dev/null +++ b/kde/patch/marble.patch @@ -0,0 +1,3 @@ +# Ensure marble bindings for Qt4 get compiled: +cat $CWD/patch/marble/marble_qt4.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + diff --git a/kde/patch/marble/marble_qt4.patch b/kde/patch/marble/marble_qt4.patch new file mode 100644 index 0000000..e497023 --- /dev/null +++ b/kde/patch/marble/marble_qt4.patch @@ -0,0 +1,47 @@ +--- marble-15.08.0.orig/CMakeLists.txt 2015-08-12 13:14:02.000000000 +0200 ++++ marble-15.08.0/CMakeLists.txt 2015-08-29 00:24:00.767298683 +0200 +@@ -45,6 +45,8 @@ + #################################################### + # Specific options for building with Qt 4 vs 5 + ++option(QT5BUILD "Build for Qt5" ON) ++ + if(ANDROID) + if (NOT DEFINED ENV{Qt5_host}) + message(FATAL_ERROR "Configure the env variable Qt5_host to point to your host Qt5 installation.") +@@ -79,6 +81,7 @@ + include_directories(SYSTEM "$ENV{ANDROID_NDK}/platforms/$ENV{ANDROID_PLATFORM}/arch-arm/usr/include") + message(STATUS "Include directories: " "$ENV{ANDROID_NDK}/platforms/$ENV{ANDROID_PLATFORM}/arch-arm/usr/include") + else() ++ if(QT5BUILD) + find_package(Qt5WebKit) + find_package(Qt5WebKitWidgets) + find_package(Qt5DBus) +@@ -86,8 +89,10 @@ + if ( NOT Qt5WebKit_FOUND ) + set ( MARBLE_NO_WEBKIT TRUE ) + endif() ++ endif() + endif() + ++if(QT5BUILD) + find_package(Qt5Core) + find_package(Qt5Xml) + find_package(Qt5Network) +@@ -100,6 +105,7 @@ + find_package(Qt5Quick) + find_package(Qt5OpenGL) + find_package(Qt5PrintSupport) ++endif() + + if(QTONLY) + # Forward the old QTONLY=TRUE option to the new WITH_KDE=FALSE +@@ -111,8 +117,6 @@ + unset(QTONLY) + endif() + +-option(QT5BUILD "Build for Qt5" ON) +- + if(QT5BUILD AND Qt5Core_FOUND) + cmake_minimum_required(VERSION 2.8.12) + set(QT4BUILD FALSE) diff --git a/kde/patch/sddm-qt5.patch b/kde/patch/sddm-qt5.patch index d1a12dc..58f21c7 100644 --- a/kde/patch/sddm-qt5.patch +++ b/kde/patch/sddm-qt5.patch @@ -1,6 +1,9 @@ # Add missing consolekit support -# (brings back the switch_user/shutdown/reboot functionality in KDE): +# (brings back the switch_user functionality in KDE): cat $CWD/patch/sddm-qt5/sddm_consolekit.diff | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } # Fix a compilation error on passwd backend: #cat $CWD/patch/sddm-qt5/sddm_auth.diff | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } + +# Fix a compilation error on passwd backend: +cat $CWD/patch/sddm-qt5/sddm_qstring.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/kde/patch/sddm-qt5/sddm_qstring.patch b/kde/patch/sddm-qt5/sddm_qstring.patch new file mode 100644 index 0000000..40c3879 --- /dev/null +++ b/kde/patch/sddm-qt5/sddm_qstring.patch @@ -0,0 +1,88 @@ +Slightly modified from this patch in order to apply against SDDM master git: +https://github.com/AOSC-Dev/sddm/commit/c6be72636f43a28f1b6aebff9d682d0182dd7a1e.patch + +From c6be72636f43a28f1b6aebff9d682d0182dd7a1e Mon Sep 17 00:00:00 2001 +From: Leslie Zhai +Date: Mon, 31 Aug 2015 14:04:17 +0800 +Subject: [PATCH] Disable pam backend because loginFailed + +--- +diff -uar sddm-d42700a_20150822git.orig/CMakeLists.txt sddm-d42700a_20150822git/CMakeLists.txt +--- sddm-d42700a_20150822git.orig/CMakeLists.txt 2015-08-22 16:17:37.000000000 +0200 ++++ sddm-d42700a_20150822git/CMakeLists.txt 2015-08-31 12:01:47.342810382 +0200 +@@ -31,6 +31,7 @@ + # Options + option(BUILD_MAN_PAGES "Build man pages" OFF) + option(ENABLE_JOURNALD "Enable logging to journald" ON) ++option(ENABLE_PAM "Enable pam" OFF) + + # Definitions + add_definitions(-Wall -std=c++11 -DQT_NO_CAST_FROM_ASCII) +@@ -66,7 +67,7 @@ + find_package(PkgConfig) + + # PAM +-if(NOT NO_PAM) ++if(ENABLE_PAM) + find_package(PAM) + + if(PAM_FOUND) +diff -uar sddm-d42700a_20150822git.orig/src/helper/backend/PasswdBackend.cpp sddm-d42700a_20150822git/src/helper/backend/PasswdBackend.cpp +--- sddm-d42700a_20150822git.orig/src/helper/backend/PasswdBackend.cpp 2015-08-22 16:17:37.000000000 +0200 ++++ sddm-d42700a_20150822git/src/helper/backend/PasswdBackend.cpp 2015-08-31 12:00:43.995324823 +0200 +@@ -38,7 +38,7 @@ + if (m_autologin) + return true; + +- if (m_user == "sddm") { ++ if (m_user == QStringLiteral("sddm")) { + if (m_greeter) + return true; + else +@@ -49,17 +49,17 @@ + QString password; + + if (m_user.isEmpty()) +- r.prompts << Prompt(AuthPrompt::LOGIN_USER, "Login", false); +- r.prompts << Prompt(AuthPrompt::LOGIN_PASSWORD, "Password", true); ++ r.prompts << Prompt(AuthPrompt::LOGIN_USER, QStringLiteral("Login"), false); ++ r.prompts << Prompt(AuthPrompt::LOGIN_PASSWORD, QStringLiteral("Password"), true); + + Request response = m_app->request(r); + Q_FOREACH(const Prompt &p, response.prompts) { + switch (p.type) { + case AuthPrompt::LOGIN_USER: +- m_user = p.response; ++ m_user = QString::fromUtf8(p.response); + break; + case AuthPrompt::LOGIN_PASSWORD: +- password = p.response; ++ password = QString::fromUtf8(p.response); + break; + default: + break; +@@ -68,13 +68,13 @@ + + struct passwd *pw = getpwnam(qPrintable(m_user)); + if (!pw) { +- m_app->error(QString("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION); ++ m_app->error(QStringLiteral("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION); + return false; + } + + struct spwd *spw = getspnam(pw->pw_name); + if (!spw) { +- qWarning() << "[Passwd] Could get passwd but not shadow"; ++ qWarning() << QStringLiteral("[Passwd] Could get passwd but not shadow"); + return false; + } + +@@ -86,7 +86,7 @@ + return true; + } + +- m_app->error(QString("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION); ++ m_app->error(QStringLiteral("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION); + return false; + } + -- cgit v1.2.3