From 245655b7a16d2030a8768bd8158042b6b5e7412e Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Sat, 1 Sep 2007 18:26:13 +0000 Subject: [PATCH] Added support for overridable variants of package. For details read comments near getVersion function, gettext is the current example. svn path=/nixpkgs/trunk/; revision=9235 --- .../{gettext-0.14.6.nix => 0.14.6.nix} | 0 .../gettext/{gettext-0.15.nix => 0.15.nix} | 0 .../{gettext-0.16.x.nix => 0.16.x.nix} | 0 .../development/libraries/gettext/default.nix | 9 +++++++- pkgs/top-level/all-packages.nix | 21 ++++++++++++++++++- 5 files changed, 28 insertions(+), 2 deletions(-) rename pkgs/development/libraries/gettext/{gettext-0.14.6.nix => 0.14.6.nix} (100%) rename pkgs/development/libraries/gettext/{gettext-0.15.nix => 0.15.nix} (100%) rename pkgs/development/libraries/gettext/{gettext-0.16.x.nix => 0.16.x.nix} (100%) diff --git a/pkgs/development/libraries/gettext/gettext-0.14.6.nix b/pkgs/development/libraries/gettext/0.14.6.nix similarity index 100% rename from pkgs/development/libraries/gettext/gettext-0.14.6.nix rename to pkgs/development/libraries/gettext/0.14.6.nix diff --git a/pkgs/development/libraries/gettext/gettext-0.15.nix b/pkgs/development/libraries/gettext/0.15.nix similarity index 100% rename from pkgs/development/libraries/gettext/gettext-0.15.nix rename to pkgs/development/libraries/gettext/0.15.nix diff --git a/pkgs/development/libraries/gettext/gettext-0.16.x.nix b/pkgs/development/libraries/gettext/0.16.x.nix similarity index 100% rename from pkgs/development/libraries/gettext/gettext-0.16.x.nix rename to pkgs/development/libraries/gettext/0.16.x.nix diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index 9ceea47d22c..54a0d36cf76 100644 --- a/pkgs/development/libraries/gettext/default.nix +++ b/pkgs/development/libraries/gettext/default.nix @@ -1 +1,8 @@ -import ./gettext-0.14.6.nix +args: +rec { + recurseForDerivations = true; + default = v_0_14_6; + v_0_14_6 = (import ./0.14.6.nix) args; + v_0_15 = (import ./0.15.nix) args; + v_0_16_x = (import ./0.16.x.nix) args; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b771e4daa75..e629b9902e9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -129,6 +129,23 @@ rec { # a default value if the attribute doesn't exist. getConfig = attrPath: default: library.getAttr attrPath default config; + # Return user-choosen version of given package. If you define package as + # + # pkgname_alts = + # { + # v_0_1 = (); + # v_0_2 = (); + # default = v_0_1; + # recurseForDerivations = true; + # }; + # pkgname = getVersion "name" pkgname_alts; + # + # user will be able to write in his configuration.nix something like + # environment = { versions = { name = v_0_2; }; }; and pkgname will be equal + # to pkgname_alts.v_0_2. Using alts.default by default. + getVersion = name: alts: builtins.getAttr + (getConfig [ "environment" "versions" name ] "default") alts; + # The contents of the configuration file found at $NIXPKGS_CONFIG or # $HOME/.nixpkgs/config.nix. config = @@ -1439,7 +1456,9 @@ rec { inherit fetchurl stdenv; }; - gettext = import ../development/libraries/gettext { + gettext = getVersion "gettext" gettext_alts; + + gettext_alts = import ../development/libraries/gettext { inherit fetchurl stdenv; };