Author: eelco
Date: Thu Oct 14 16:49:41 2010
New Revision: 24294
URL: https://svn.nixos.org/websvn/nix/?rev=24294&sc=1
Log:
* 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.)
Modified:
nixpkgs/trunk/pkgs/desktops/kde-4.5/default.nix
nixpkgs/trunk/pkgs/top-level/all-packages.nix
Modified: nixpkgs/trunk/pkgs/desktops/kde-4.5/default.nix
==============================================================================
--- nixpkgs/trunk/pkgs/desktops/kde-4.5/default.nix Thu Oct 14 15:55:51
2010 (r24293)
+++ nixpkgs/trunk/pkgs/desktops/kde-4.5/default.nix Thu Oct 14 16:49:41
2010 (r24294)
@@ -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);
+
}
Modified: nixpkgs/trunk/pkgs/top-level/all-packages.nix
==============================================================================
--- nixpkgs/trunk/pkgs/top-level/all-packages.nix Thu Oct 14 15:55:51
2010 (r24293)
+++ nixpkgs/trunk/pkgs/top-level/all-packages.nix Thu Oct 14 16:49:41
2010 (r24294)
@@ -2103,7 +2103,7 @@
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 @@
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 @@
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;
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits