mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 07:23:20 +00:00
mergeAttrsByVersion, versionedDerivation: remove
obsolete and ancient
This commit is contained in:
parent
6c1528c48d
commit
f48109387a
@ -309,48 +309,6 @@ rec {
|
|||||||
mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; };
|
mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; };
|
||||||
mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"];
|
mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"];
|
||||||
|
|
||||||
# merge attrs based on version key into mkDerivation args, see mergeAttrBy to learn about smart merge defaults
|
|
||||||
#
|
|
||||||
# This function is best explained by an example:
|
|
||||||
#
|
|
||||||
# {version ? "2.x"}:
|
|
||||||
#
|
|
||||||
# mkDerivation (mergeAttrsByVersion "package-name" version
|
|
||||||
# { # version specific settings
|
|
||||||
# "git" = { src = ..; preConfigre = "autogen.sh"; buildInputs = [automake autoconf libtool]; };
|
|
||||||
# "2.x" = { src = ..; };
|
|
||||||
# }
|
|
||||||
# { // shared settings
|
|
||||||
# buildInputs = [ common build inputs ];
|
|
||||||
# meta = { .. }
|
|
||||||
# }
|
|
||||||
# )
|
|
||||||
#
|
|
||||||
# Please note that e.g. Eelco Dolstra usually prefers having one file for
|
|
||||||
# each version. On the other hand there are valuable additional design goals
|
|
||||||
# - readability
|
|
||||||
# - do it once only
|
|
||||||
# - try to avoid duplication
|
|
||||||
#
|
|
||||||
# Marc Weber and Michael Raskin sometimes prefer keeping older
|
|
||||||
# versions around for testing and regression tests - as long as its cheap to
|
|
||||||
# do so.
|
|
||||||
#
|
|
||||||
# Very often it just happens that the "shared" code is the bigger part.
|
|
||||||
# Then using this function might be appropriate.
|
|
||||||
#
|
|
||||||
# Be aware that its easy to cause recompilations in all versions when using
|
|
||||||
# this function - also if derivations get too complex splitting into multiple
|
|
||||||
# files is the way to go.
|
|
||||||
#
|
|
||||||
# See misc.nix -> versionedDerivation
|
|
||||||
# discussion: nixpkgs: pull/310
|
|
||||||
mergeAttrsByVersion = name: version: attrsByVersion: base:
|
|
||||||
mergeAttrsByFuncDefaultsClean [ { name = "${name}-${version}"; }
|
|
||||||
base
|
|
||||||
(maybeAttr version (throw "bad version ${version} for ${name}") attrsByVersion)
|
|
||||||
];
|
|
||||||
|
|
||||||
# sane defaults (same name as attr name so that inherit can be used)
|
# sane defaults (same name as attr name so that inherit can be used)
|
||||||
mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
|
mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
|
||||||
listToAttrs (map (n: nameValuePair n lib.concat)
|
listToAttrs (map (n: nameValuePair n lib.concat)
|
||||||
|
@ -5,11 +5,6 @@ let inherit (pkgs) stdenv runCommand perl lib;
|
|||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
# description see mergeAttrsByVersion in lib/misc.nix
|
|
||||||
versionedDerivation = name: version: attrsByVersion: base:
|
|
||||||
pkgs.stdenv.mkDerivation (stdenv.lib.mergeAttrsByVersion name version attrsByVersion base);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Usage example creating a derivation installing ruby, sup and a lib:
|
Usage example creating a derivation installing ruby, sup and a lib:
|
||||||
|
|
||||||
|
@ -50,7 +50,6 @@ with pkgs;
|
|||||||
inherit lib config;
|
inherit lib config;
|
||||||
|
|
||||||
inherit (lib) lowPrio hiPrio appendToName makeOverridable;
|
inherit (lib) lowPrio hiPrio appendToName makeOverridable;
|
||||||
inherit (misc) versionedDerivation;
|
|
||||||
|
|
||||||
# Applying this to an attribute set will cause nix-env to look
|
# Applying this to an attribute set will cause nix-env to look
|
||||||
# inside the set for derivations.
|
# inside the set for derivations.
|
||||||
|
Loading…
Reference in New Issue
Block a user