From a9d0778cd4e0cdb92d46c73032b125c4b98dc66e Mon Sep 17 00:00:00 2001 From: Ryan Mulligan Date: Fri, 2 Mar 2018 20:26:32 -0800 Subject: [PATCH 1/2] lib: add versions library --- lib/default.nix | 2 +- lib/versions.nix | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lib/versions.nix diff --git a/lib/default.nix b/lib/default.nix index a25a23299b3..85d19675043 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -24,7 +24,7 @@ let maintainers = callLibs ./maintainers.nix; meta = callLibs ./meta.nix; sources = callLibs ./sources.nix; - + versions = callLibs ./versions.nix; # module system modules = callLibs ./modules.nix; diff --git a/lib/versions.nix b/lib/versions.nix new file mode 100644 index 00000000000..8f7f98ff5e1 --- /dev/null +++ b/lib/versions.nix @@ -0,0 +1,47 @@ +/* Version string functions. */ +{ lib }: + +let + + splitVersion = builtins.splitVersion or (lib.splitString "."); + +in + +rec { + + /* Get the major version string from a string. + + Example: + major "1.2.3" + => "1" + */ + major = v: builtins.elemAt (splitVersion v) 0; + + /* Get the minor version string from a string. + + Example: + minor "1.2.3" + => "2" + */ + minor = v: builtins.elemAt (splitVersion v) 1; + + /* Get the patch version string from a string. + + Example: + patch "1.2.3" + => "3" + */ + patch = v: builtins.elemAt (splitVersion v) 2; + + /* Get string of the first two parts (major and minor) + of a version string. + + Example: + majorMinor "1.2.3" + => "1.2" + */ + majorMinor = v: + builtins.concatStringsSep "." + (lib.take 2 (splitVersion v)); + +} From 1f7fdf6fef0ca3871b9563a782bd2d64ce22919e Mon Sep 17 00:00:00 2001 From: Ryan Mulligan Date: Sun, 4 Mar 2018 06:28:45 -0800 Subject: [PATCH 2/2] haproxy: use lib.versions.majorMinor --- pkgs/tools/networking/haproxy/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix index 06c595f7c6d..d31d560e868 100644 --- a/pkgs/tools/networking/haproxy/default.nix +++ b/pkgs/tools/networking/haproxy/default.nix @@ -9,13 +9,11 @@ assert usePcre -> pcre != null; stdenv.mkDerivation rec { pname = "haproxy"; - majorVersion = "1.7"; - minorVersion = "9"; - version = "${majorVersion}.${minorVersion}"; + version = "1.7.9"; name = "${pname}-${version}"; src = fetchurl { - url = "https://www.haproxy.org/download/${majorVersion}/src/${name}.tar.gz"; + url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${name}.tar.gz"; sha256 = "1072337e54fa188dc6e0cfe3ba4c2200b07082e321cbfe5a0882d85d54db068e"; };