diff options
Diffstat (limited to 'pkgs/development/libraries/kde-frameworks-5.18/kservice')
4 files changed, 112 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch new file mode 100644 index 000000000000..3d8397d8ee2d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch @@ -0,0 +1,25 @@ +From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +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/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch new file mode 100644 index 000000000000..685c68526119 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch @@ -0,0 +1,25 @@ +From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +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/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix new file mode 100644 index 000000000000..03b7c7c2f51d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix @@ -0,0 +1,19 @@ +{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons +, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem +}: + +kdeFramework { + name = "kservice"; + setupHook = ./setup-hook.sh; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ kcrash kdbusaddons ]; + propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ]; + propagatedUserEnvPkgs = [ kcoreaddons ]; + patches = [ + ./0001-qdiriterator-follow-symlinks.patch + ./0002-no-canonicalize-path.patch + ]; + meta = { + maintainers = [ lib.maintainers.ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh new file mode 100644 index 000000000000..c28e862ff8ae --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh @@ -0,0 +1,43 @@ +addServicePkg() { + local propagated + for dir in "share/kservices5" "share/kservicetypes5"; do + if [[ -d "$1/$dir" ]]; then + propagated= + for pkg in $propagatedBuildInputs; do + if [[ "z$pkg" == "z$1" ]]; then + propagated=1 + break + fi + done + if [[ -z $propagated ]]; then + propagatedBuildInputs="$propagatedBuildInputs $1" + fi + + propagated= + for pkg in $propagatedUserEnvPkgs; do + if [[ "z$pkg" == "z$1" ]]; then + propagated=1 + break + fi + done + if [[ -z $propagated ]]; then + propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1" + fi + + break + fi + done +} + +envHooks+=(addServicePkg) + +local propagated +for pkg in $propagatedBuildInputs; do + if [[ "z$pkg" == "z@out@" ]]; then + propagated=1 + break + fi +done +if [[ -z $propagated ]]; then + propagatedBuildInputs="$propagatedBuildInputs @out@" +fi |