From 4e7208fe2e956eb69a6d5fc3d5cafa7ba373f564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Thu, 9 May 2013 18:40:29 +0000 Subject: [PATCH] Adding a KDE wrapper, to easily have KDE programs in nix-env. Specially for those not running KDE. --- pkgs/build-support/kdewrapper/default.nix | 40 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 42 insertions(+) create mode 100644 pkgs/build-support/kdewrapper/default.nix diff --git a/pkgs/build-support/kdewrapper/default.nix b/pkgs/build-support/kdewrapper/default.nix new file mode 100644 index 00000000000..a9418ba1f96 --- /dev/null +++ b/pkgs/build-support/kdewrapper/default.nix @@ -0,0 +1,40 @@ +{ stdenv, kde4, shared_mime_info, extraLibs ? [] }: + +/* Supply a KDE program, and it will have the necessary KDE vars to + get icons, mime types, etc. working. + For example: + + packageOverrides = pkgs : { + kdenliveWrapped = kde4.wrapper kde4.kdenlive; + }; + */ +program: + +let + libs = with kde4; [ kdelibs kde_runtime oxygen_icons shared_mime_info ] + extra; +in +stdenv.mkDerivation { + name = program.name + "-wrapped"; + + inherit libs; + + buildCommand = '' + ensureDir $out/bin + + KDEDIRS= + QT_PLUGIN_PATH= + for a in $libs; do + KDEDIRS=$a''${KDEDIRS:+:}$KDEDIRS + QT_PLUGIN_PATH=$a''${KDEDIRS:+:}$KDEDIRS + done + for a in ${program}/bin/*; do + PROG=$out/bin/`basename $a` + cat > $PROG << END + export KDEDIRS=$KDEDIRS + export QT_PLUGIN_PATH=$KDEDIRS + exec $a "\$@" + END + chmod +x $PROG + done + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 387bbc61d55..cd31fc1a4e2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8609,6 +8609,8 @@ let in kde4 // { inherit kde4; + wrapper = callPackage ../build-support/kdewrapper {}; + recurseForRelease = true; akunambol = callPackage ../applications/networking/sync/akunambol { };