diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/kde-frameworks/kservice')
3 files changed, 48 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix new file mode 100644 index 000000000000..630582ecf763 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix @@ -0,0 +1,22 @@ +{ + mkDerivation, lib, + bison, extra-cmake-modules, flex, + kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem, + qtbase, shared-mime-info, +}: + +mkDerivation { + name = "kservice"; + meta = { maintainers = [ lib.maintainers.ttuegel ]; }; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedNativeBuildInputs = [ bison flex ]; + buildInputs = [ + kcrash kdbusaddons ki18n kwindowsystem qtbase + ]; + propagatedBuildInputs = [ kconfig kcoreaddons ]; + propagatedUserEnvPkgs = [ shared-mime-info ]; # for kbuildsycoca5 + patches = [ + ./qdiriterator-follow-symlinks.patch + ./no-canonicalize-path.patch + ]; +} diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch new file mode 100644 index 000000000000..cf98ffb9067f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/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/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..fdd8b4d81a18 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch @@ -0,0 +1,13 @@ +diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp +index b125299..0682b90 100644 +--- a/src/sycoca/kbuildsycoca.cpp ++++ b/src/sycoca/kbuildsycoca.cpp +@@ -207,7 +207,7 @@ bool KBuildSycoca::build() + const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory); + qCDebug(SYCOCA) << "Looking for subdir" << m_resourceSubdir << "=>" << dirs; + for (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... |