From 03ed16a1c4a706f9f0dedf593b6863e99bb3edb3 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 18 Oct 2015 11:57:50 -0500 Subject: [PATCH] kservice: propagate service providers --- .../kde-frameworks-5.15/kservice/default.nix | 6 ++- .../kservice/setup-hook.sh | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/kde-frameworks-5.15/kservice/setup-hook.sh diff --git a/pkgs/development/libraries/kde-frameworks-5.15/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.15/kservice/default.nix index 5c7727cdb64..03b7c7c2f51 100644 --- a/pkgs/development/libraries/kde-frameworks-5.15/kservice/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.15/kservice/default.nix @@ -4,9 +4,11 @@ kdeFramework { name = "kservice"; + setupHook = ./setup-hook.sh; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; - buildInputs = [ kcoreaddons kcrash kdbusaddons ]; - propagatedBuildInputs = [ kconfig ki18n kwindowsystem ]; + buildInputs = [ kcrash kdbusaddons ]; + propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ]; + propagatedUserEnvPkgs = [ kcoreaddons ]; patches = [ ./0001-qdiriterator-follow-symlinks.patch ./0002-no-canonicalize-path.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.15/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.15/kservice/setup-hook.sh new file mode 100644 index 00000000000..c28e862ff8a --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.15/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