* 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
This commit is contained in:
Eelco Dolstra 2010-10-14 16:49:41 +00:00
parent e958760535
commit 1758b488e6
2 changed files with 38 additions and 16 deletions

View File

@ -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; recurseForRelease = true;
inherit callPackage stdenv; inherit callPackage stdenv;
@ -47,8 +64,8 @@
kdebase_runtime = callPackage ./base-runtime { }; kdebase_runtime = callPackage ./base-runtime { };
### OTHER MODULES ### OTHER MODULES
kdeaccessibility = {
recurseForDerivations = true; kdeaccessibility = combinePkgs "kdeaccessibility" {
colorSchemes = callPackage ./accessibility/color-schemes.nix { }; colorSchemes = callPackage ./accessibility/color-schemes.nix { };
iconThemes = callPackage ./accessibility/icon-themes.nix { }; iconThemes = callPackage ./accessibility/icon-themes.nix { };
jovie = callPackage ./accessibility/jovie.nix { }; jovie = callPackage ./accessibility/jovie.nix { };
@ -58,8 +75,8 @@
}; };
kdeadmin = callPackage ./admin { }; kdeadmin = callPackage ./admin { };
kdeartwork = {
recurseForDerivations = true; kdeartwork = combinePkgs "kdeartwork" {
aurorae = callPackage ./artwork/aurorae.nix { }; aurorae = callPackage ./artwork/aurorae.nix { };
colorSchemes = callPackage ./artwork/color-schemes.nix { }; colorSchemes = callPackage ./artwork/color-schemes.nix { };
desktop_themes = callPackage ./artwork/desktop-themes.nix { }; desktop_themes = callPackage ./artwork/desktop-themes.nix { };
@ -72,14 +89,15 @@
phase_style = callPackage ./artwork/phase-style.nix { }; phase_style = callPackage ./artwork/phase-style.nix { };
kscreensaver = callPackage ./artwork/kscreensaver.nix { }; kscreensaver = callPackage ./artwork/kscreensaver.nix { };
}; };
kdeedu = callPackage ./edu { }; kdeedu = callPackage ./edu { };
kdegames = callPackage ./games { }; kdegames = callPackage ./games { };
kdegraphics = callPackage ./graphics { }; kdegraphics = callPackage ./graphics { };
kdemultimedia = callPackage ./multimedia { }; kdemultimedia = callPackage ./multimedia { };
kdenetwork = callPackage ./network { }; kdenetwork = callPackage ./network { };
kdeplasma_addons = callPackage ./plasma-addons { }; kdeplasma_addons = callPackage ./plasma-addons { };
kdesdk = {
recurseForDerivations = true; kdesdk = combinePkgs "kdesdk" {
cervisia = callPackage ./sdk/cervisia.nix { }; cervisia = callPackage ./sdk/cervisia.nix { };
kapptemplate = callPackage ./sdk/kapptemplate.nix { }; kapptemplate = callPackage ./sdk/kapptemplate.nix { };
kate = callPackage ./sdk/kate.nix { }; kate = callPackage ./sdk/kate.nix { };
@ -101,14 +119,14 @@
scripts = callPackage ./sdk/scripts.nix { }; scripts = callPackage ./sdk/scripts.nix { };
umbrello = callPackage ./sdk/umbrello.nix { }; umbrello = callPackage ./sdk/umbrello.nix { };
}; };
kdetoys = {
recurseForDerivations = true; kdetoys = combinePkgs "kdetoys" {
amor = callPackage ./toys/amor.nix { }; amor = callPackage ./toys/amor.nix { };
kteatime = callPackage ./toys/kteatime.nix { }; kteatime = callPackage ./toys/kteatime.nix { };
ktux = callPackage ./toys/ktux.nix { }; ktux = callPackage ./toys/ktux.nix { };
}; };
kdeutils = { kdeutils = combinePkgs "kdeutils" {
ark = callPackage ./utils/ark.nix { }; ark = callPackage ./utils/ark.nix { };
kcalc = callPackage ./utils/kcalc.nix { }; kcalc = callPackage ./utils/kcalc.nix { };
kcharselect = callPackage ./utils/kcharselect.nix { }; kcharselect = callPackage ./utils/kcharselect.nix { };
@ -122,11 +140,9 @@
printer_applet = callPackage ./utils/printer-applet.nix { }; printer_applet = callPackage ./utils/printer-applet.nix { };
superkaramba = callPackage ./utils/superkaramba.nix { }; superkaramba = callPackage ./utils/superkaramba.nix { };
sweeper = callPackage ./utils/sweeper.nix { }; sweeper = callPackage ./utils/sweeper.nix { };
recurseForRelease = true;
}; };
kdewebdev = { kdewebdev = combinePkgs "kdewebdev" {
recurseForDerivations = true;
klinkstatus = callPackage ./webdev/klinkstatus.nix { }; klinkstatus = callPackage ./webdev/klinkstatus.nix { };
kommander = callPackage ./webdev/kommander.nix { }; kommander = callPackage ./webdev/kommander.nix { };
kfilereplace = callPackage ./webdev/kfilereplace.nix { }; kfilereplace = callPackage ./webdev/kfilereplace.nix { };
@ -139,9 +155,15 @@
# Experimental 4.5 versions # Experimental 4.5 versions
kdepim_runtime45 = callPackage ./pim-runtime45 { }; kdepim_runtime45 = callPackage ./pim-runtime45 { };
kdepim45 = callPackage ./pim45 { }; kdepim45 = callPackage ./pim45 { };
### DEVELOPMENT ### DEVELOPMENT
kdebindings = callPackage ./bindings { }; kdebindings = callPackage ./bindings { };
l10n = callPackage ./l10n { }; 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);
} }

View File

@ -2103,7 +2103,7 @@ let
pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { }; 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) { python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm; inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
@ -6700,6 +6700,7 @@ let
kde45 = callPackage ../desktops/kde-4.5 { kde45 = callPackage ../desktops/kde-4.5 {
callPackage = callPackage =
let let
# !!! Ugly, inefficient.
pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; })); pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; }));
in in
pkgs_for_45.newScope pkgs_for_45.kde45; pkgs_for_45.newScope pkgs_for_45.kde45;
@ -6964,7 +6965,6 @@ let
stateDir = getPkgConfig "nix" "stateDir" "/nix/var"; stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
}; };
# The SQLite branch. # The SQLite branch.
nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) { nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
inherit fetchurl stdenv perl curl bzip2 openssl sqlite; inherit fetchurl stdenv perl curl bzip2 openssl sqlite;