diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-10-14 16:49:41 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-10-14 16:49:41 +0000 |
commit | 1758b488e6a06d12975ba6d7ab25cb6419329e3c (patch) | |
tree | b2e5dd8916e2dd80e064e5c4f1b4605cee6d2825 | |
parent | e958760535cca4db4623e0169981c40fa778507a (diff) | |
download | nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar.gz nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar.bz2 nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar.lz nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar.xz nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.tar.zst nixlib-1758b488e6a06d12975ba6d7ab25cb6419329e3c.zip |
* Some hackery to make the split KDE packages available both
individually and combined. For instance, you can say environment.systemPackages = [ pkgs.kde4.kdesdk.kcachegrind ]; for just kcachegrind, or environment.systemPackages = [ pkgs.kde4.kdesdk ]; to get all of kdesdk. Everything can also be installed by name through nix-env. (There is a name clash between the ColorSchemes packages in kdeaccessibility and kdeartwork, though.) svn path=/nixpkgs/trunk/; revision=24294
-rw-r--r-- | pkgs/desktops/kde-4.5/default.nix | 50 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
2 files changed, 38 insertions, 16 deletions
diff --git a/pkgs/desktops/kde-4.5/default.nix b/pkgs/desktops/kde-4.5/default.nix index 7630d136a8f5..9efdb530d435 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.1"; + + # 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); + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ef032e29db77..08f65171d914 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2103,7 +2103,7 @@ let pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { }; - python24 = lowPrio (callPackage ../development/interpreters/python/2.4 { }); + python24 = callPackage ../development/interpreters/python/2.4 { }; python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) { inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm; @@ -6700,6 +6700,7 @@ let kde45 = callPackage ../desktops/kde-4.5 { callPackage = let + # !!! Ugly, inefficient. pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; })); in pkgs_for_45.newScope pkgs_for_45.kde45; @@ -6964,7 +6965,6 @@ let stateDir = getPkgConfig "nix" "stateDir" "/nix/var"; }; - # The SQLite branch. nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) { inherit fetchurl stdenv perl curl bzip2 openssl sqlite; |