From 3f753a655d22b468043fe95860d754a6b8a19f59 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Apr 2016 11:10:42 -0500 Subject: [PATCH] kde5.kservice: add patch to increase buffer size Fixes #15044. --- .../0001-qdiriterator-follow-symlinks.patch | 25 ------------------- .../kservice/0002-no-canonicalize-path.patch | 25 ------------------- .../frameworks-5.21/kservice/default.nix | 7 ++---- .../kservice/ksycoca-buffer-size.patch | 25 +++++++++++++++++++ .../kservice/no-canonicalize-path.patch | 13 ++++++++++ .../qdiriterator-follow-symlinks.patch | 13 ++++++++++ .../kde-5/frameworks-5.21/kservice/series | 3 +++ 7 files changed, 56 insertions(+), 55 deletions(-) delete mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/0001-qdiriterator-follow-symlinks.patch delete mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/0002-no-canonicalize-path.patch create mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/ksycoca-buffer-size.patch create mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/no-canonicalize-path.patch create mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/qdiriterator-follow-symlinks.patch create mode 100644 pkgs/desktops/kde-5/frameworks-5.21/kservice/series diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.21/kservice/0001-qdiriterator-follow-symlinks.patch deleted file mode 100644 index 3d8397d8ee2..00000000000 --- a/pkgs/desktops/kde-5/frameworks-5.21/kservice/0001-qdiriterator-follow-symlinks.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Wed, 14 Oct 2015 06:28:57 -0500 -Subject: [PATCH 1/2] qdiriterator follow symlinks - ---- - src/sycoca/kbuildsycoca.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp -index 1deae14..250baa8 100644 ---- a/src/sycoca/kbuildsycoca.cpp -+++ b/src/sycoca/kbuildsycoca.cpp -@@ -208,7 +208,7 @@ bool KBuildSycoca::build() - QStringList relFiles; - const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory); - Q_FOREACH (const QString &dir, dirs) { -- QDirIterator it(dir, QDirIterator::Subdirectories); -+ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); - while (it.hasNext()) { - const QString filePath = it.next(); - Q_ASSERT(filePath.startsWith(dir)); // due to the line below... --- -2.5.2 - diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/0002-no-canonicalize-path.patch b/pkgs/desktops/kde-5/frameworks-5.21/kservice/0002-no-canonicalize-path.patch deleted file mode 100644 index 685c6852611..00000000000 --- a/pkgs/desktops/kde-5/frameworks-5.21/kservice/0002-no-canonicalize-path.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Wed, 14 Oct 2015 06:31:29 -0500 -Subject: [PATCH 2/2] no canonicalize path - ---- - src/sycoca/vfolder_menu.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sycoca/vfolder_menu.cpp b/src/sycoca/vfolder_menu.cpp -index d3e31c3..d15d743 100644 ---- a/src/sycoca/vfolder_menu.cpp -+++ b/src/sycoca/vfolder_menu.cpp -@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &_dir, const QString &baseDir, bool keepR - } - - if (!relative) { -- QString resolved = QDir(dir).canonicalPath(); -+ QString resolved = QDir::cleanPath(dir); - if (!resolved.isEmpty()) { - dir = resolved; - } --- -2.5.2 - diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/default.nix b/pkgs/desktops/kde-5/frameworks-5.21/kservice/default.nix index bbb4f5fae58..484be408794 100644 --- a/pkgs/desktops/kde-5/frameworks-5.21/kservice/default.nix +++ b/pkgs/desktops/kde-5/frameworks-5.21/kservice/default.nix @@ -1,4 +1,4 @@ -{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules, kconfig, kcoreaddons , kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem }: @@ -8,8 +8,5 @@ kdeFramework { propagatedNativeBuildInputs = [ extra-cmake-modules ]; nativeBuildInputs = [ kdoctools ]; propagatedBuildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ki18n kwindowsystem ]; - patches = [ - ./0001-qdiriterator-follow-symlinks.patch - ./0002-no-canonicalize-path.patch - ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); } diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/ksycoca-buffer-size.patch b/pkgs/desktops/kde-5/frameworks-5.21/kservice/ksycoca-buffer-size.patch new file mode 100644 index 00000000000..e65d4505ed2 --- /dev/null +++ b/pkgs/desktops/kde-5/frameworks-5.21/kservice/ksycoca-buffer-size.patch @@ -0,0 +1,25 @@ +Index: kservice-5.21.0/src/sycoca/ksycocautils.cpp +=================================================================== +--- kservice-5.21.0.orig/src/sycoca/ksycocautils.cpp ++++ kservice-5.21.0/src/sycoca/ksycocautils.cpp +@@ -24,9 +24,10 @@ + + void KSycocaUtilsPrivate::read(QDataStream &s, QString &str) + { ++ const qint32 bufferSize = 65528; + quint32 bytes; + s >> bytes; // read size of string +- if (bytes > 8192) { // null string or too big ++ if (bytes > bufferSize) { // null string or too big + if (bytes != 0xffffffff) { + KSycoca::flagError(); + } +@@ -35,7 +36,7 @@ void KSycocaUtilsPrivate::read(QDataStre + int bt = bytes / 2; + str.resize(bt); + QChar *ch = str.data(); +- char t[8192]; ++ char t[bufferSize]; + char *b = t; + s.readRawData(b, bytes); + while (bt--) { diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/no-canonicalize-path.patch b/pkgs/desktops/kde-5/frameworks-5.21/kservice/no-canonicalize-path.patch new file mode 100644 index 00000000000..cf98ffb9067 --- /dev/null +++ b/pkgs/desktops/kde-5/frameworks-5.21/kservice/no-canonicalize-path.patch @@ -0,0 +1,13 @@ +Index: kservice-5.21.0/src/sycoca/vfolder_menu.cpp +=================================================================== +--- kservice-5.21.0.orig/src/sycoca/vfolder_menu.cpp ++++ kservice-5.21.0/src/sycoca/vfolder_menu.cpp +@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString & + } + + if (!relative) { +- QString resolved = QDir(dir).canonicalPath(); ++ QString resolved = QDir::cleanPath(dir); + if (!resolved.isEmpty()) { + dir = resolved; + } diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.21/kservice/qdiriterator-follow-symlinks.patch new file mode 100644 index 00000000000..cbe13b70950 --- /dev/null +++ b/pkgs/desktops/kde-5/frameworks-5.21/kservice/qdiriterator-follow-symlinks.patch @@ -0,0 +1,13 @@ +Index: kservice-5.21.0/src/sycoca/kbuildsycoca.cpp +=================================================================== +--- kservice-5.21.0.orig/src/sycoca/kbuildsycoca.cpp ++++ kservice-5.21.0/src/sycoca/kbuildsycoca.cpp +@@ -203,7 +203,7 @@ bool KBuildSycoca::build() + QSet relFiles; + const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory); + Q_FOREACH (const QString &dir, dirs) { +- QDirIterator it(dir, QDirIterator::Subdirectories); ++ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + while (it.hasNext()) { + const QString filePath = it.next(); + Q_ASSERT(filePath.startsWith(dir)); // due to the line below... diff --git a/pkgs/desktops/kde-5/frameworks-5.21/kservice/series b/pkgs/desktops/kde-5/frameworks-5.21/kservice/series new file mode 100644 index 00000000000..c1655f68606 --- /dev/null +++ b/pkgs/desktops/kde-5/frameworks-5.21/kservice/series @@ -0,0 +1,3 @@ +qdiriterator-follow-symlinks.patch +no-canonicalize-path.patch +ksycoca-buffer-size.patch