summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2015-10-18 11:57:50 -0500
committerThomas Tuegel <ttuegel@gmail.com>2015-10-30 16:10:37 -0500
commit03ed16a1c4a706f9f0dedf593b6863e99bb3edb3 (patch)
treec9f8e83d978cba6eca23f6c2acffd6168bc5fbef /pkgs/development
parente2383b1f0848e5af5ecf55c7d2983d0ab18a7a6b (diff)
downloadnixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar.gz
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar.bz2
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar.lz
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar.xz
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.tar.zst
nixlib-03ed16a1c4a706f9f0dedf593b6863e99bb3edb3.zip
kservice: propagate service providers
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.15/kservice/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.15/kservice/setup-hook.sh43
2 files changed, 47 insertions, 2 deletions
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 5c7727cdb647..03b7c7c2f51d 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 000000000000..c28e862ff8ae
--- /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