about summary refs log tree commit diff
path: root/pkgs/desktops/kde-4.5/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/kde-4.5/default.nix')
-rw-r--r--pkgs/desktops/kde-4.5/default.nix50
1 files changed, 36 insertions, 14 deletions
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix
index 7630d136a8f5..8ff7e9701990 100644
--- a/pkgs/desktops/kde-4.5/default.nix
+++ b/pkgs/desktops/kde-4.5/default.nix
@@ -1,6 +1,23 @@
-{ callPackage, stdenv, fetchurl, qt47 } :
+{ callPackage, recurseIntoAttrs, runCommand, stdenv, fetchurl, qt47 } :
 
-{
+let
+
+  version = "4.5.2";
+
+  # Various packages (e.g. kdesdk) have been split up into many
+  # smaller packages.  Some people may want to install the entire
+  # package, so provide a wrapper package that recombines them.
+  combinePkgs = name: pkgs:
+    let pkgs' = stdenv.lib.attrValues pkgs; in
+    runCommand "${name}-${version}" ({ passthru = pkgs // { inherit pkgs; }; })
+      ''
+        mkdir -p $out/nix-support
+        echo ${toString pkgs'} > $out/nix-support/propagated-user-env-packages
+      '';
+
+in
+
+recurseIntoAttrs rec {
   recurseForRelease = true;
 
   inherit callPackage stdenv;
@@ -47,8 +64,8 @@
   kdebase_runtime = callPackage ./base-runtime { };
 
 ### OTHER MODULES
-  kdeaccessibility = {
-    recurseForDerivations = true;
+
+  kdeaccessibility = combinePkgs "kdeaccessibility" {
     colorSchemes = callPackage ./accessibility/color-schemes.nix { };
     iconThemes = callPackage ./accessibility/icon-themes.nix { };
     jovie = callPackage ./accessibility/jovie.nix { };
@@ -58,8 +75,8 @@
   };
 
   kdeadmin = callPackage ./admin { };
-  kdeartwork = {
-    recurseForDerivations = true;
+  
+  kdeartwork = combinePkgs "kdeartwork" {
     aurorae = callPackage ./artwork/aurorae.nix { };
     colorSchemes = callPackage ./artwork/color-schemes.nix { };
     desktop_themes = callPackage ./artwork/desktop-themes.nix { };
@@ -72,14 +89,15 @@
     phase_style = callPackage ./artwork/phase-style.nix { };
     kscreensaver = callPackage ./artwork/kscreensaver.nix { };
   };
+  
   kdeedu = callPackage ./edu { };
   kdegames = callPackage ./games { };
   kdegraphics = callPackage ./graphics { };
   kdemultimedia = callPackage ./multimedia { };
   kdenetwork = callPackage ./network { };
   kdeplasma_addons = callPackage ./plasma-addons { };
-  kdesdk = {
-    recurseForDerivations = true;
+  
+  kdesdk = combinePkgs "kdesdk" {
     cervisia = callPackage ./sdk/cervisia.nix { };
     kapptemplate = callPackage ./sdk/kapptemplate.nix { };
     kate = callPackage ./sdk/kate.nix { };
@@ -101,14 +119,14 @@
     scripts = callPackage ./sdk/scripts.nix { };
     umbrello = callPackage ./sdk/umbrello.nix { };
   };
-  kdetoys = {
-    recurseForDerivations = true;
+  
+  kdetoys = combinePkgs "kdetoys" {
     amor = callPackage ./toys/amor.nix { };
     kteatime = callPackage ./toys/kteatime.nix { };
     ktux = callPackage ./toys/ktux.nix { };
   };
 
-  kdeutils = {
+  kdeutils = combinePkgs "kdeutils" {
     ark = callPackage ./utils/ark.nix { };
     kcalc = callPackage ./utils/kcalc.nix { };
     kcharselect = callPackage ./utils/kcharselect.nix { };
@@ -122,11 +140,9 @@
     printer_applet = callPackage ./utils/printer-applet.nix { };
     superkaramba = callPackage ./utils/superkaramba.nix { };
     sweeper = callPackage ./utils/sweeper.nix { };
-    recurseForRelease = true;
   };
 
-  kdewebdev = {
-    recurseForDerivations = true;
+  kdewebdev = combinePkgs "kdewebdev" {
     klinkstatus = callPackage ./webdev/klinkstatus.nix { };
     kommander = callPackage ./webdev/kommander.nix { };
     kfilereplace = callPackage ./webdev/kfilereplace.nix { };
@@ -139,9 +155,15 @@
   # Experimental 4.5 versions
   kdepim_runtime45 = callPackage ./pim-runtime45 { };
   kdepim45 = callPackage ./pim45 { };
+  
 ### DEVELOPMENT
 
   kdebindings = callPackage ./bindings { };
 
   l10n = callPackage ./l10n { };
+
+  # Make the split packages visible to `nix-env -q'.
+  misc = recurseIntoAttrs
+    (kdeaccessibility.pkgs // kdeartwork.pkgs // kdesdk.pkgs // kdetoys.pkgs // kdeutils.pkgs // kdewebdev.pkgs);
+
 }