Merge pull request #36168 from ryantm/majorminor

a single version attribute for expressions previously using "majorVersion"
This commit is contained in:
Jörg Thalheim 2018-03-04 20:06:48 +00:00 committed by GitHub
commit 73774ef8f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 5 deletions

View file

@ -24,7 +24,7 @@ let
maintainers = import ./maintainers-list.nix;
meta = callLibs ./meta.nix;
sources = callLibs ./sources.nix;
versions = callLibs ./versions.nix;
# module system
modules = callLibs ./modules.nix;

47
lib/versions.nix Normal file
View file

@ -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));
}

View file

@ -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";
};