diff options
author | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-02-23 08:06:22 -0300 |
---|---|---|
committer | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-02-23 08:06:22 -0300 |
commit | 1c11fe5df472d6d1bd56f4b7a369d235a14d9a6c (patch) | |
tree | 9162809f60535717f89522639a1555e1c2e50f55 /pkgs/by-name/un | |
parent | b15ed0d04b3c2c4e3efab34a9a04ce52150b1c31 (diff) |
units: migrate to by-name
Diffstat (limited to 'pkgs/by-name/un')
-rw-r--r-- | pkgs/by-name/un/units/package.nix | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/by-name/un/units/package.nix b/pkgs/by-name/un/units/package.nix new file mode 100644 index 0000000000000..ec4228d60ed43 --- /dev/null +++ b/pkgs/by-name/un/units/package.nix @@ -0,0 +1,70 @@ +{ lib +, fetchurl +, python3 +, readline +, stdenv +, enableCurrenciesUpdater ? true +}: + +let + pythonEnv = python3.withPackages(p: [ + p.requests + ]); +in stdenv.mkDerivation (finalAttrs: { + pname = "units"; + version = "2.22"; + + src = fetchurl { + url = "mirror://gnu/units/units-${finalAttrs.version}.tar.gz"; + hash = "sha256-XRPhIHch/ncm2Qa6HZLcDt2qn8JnWe0i47jRp5MSWEg="; + }; + + outputs = [ "out" "info" "man" ]; + + buildInputs = [ + readline + ] ++ lib.optionals enableCurrenciesUpdater [ + pythonEnv + ]; + + prePatch = lib.optionalString enableCurrenciesUpdater '' + substituteInPlace units_cur \ + --replace "#!/usr/bin/env python" ${pythonEnv}/bin/python + ''; + + postInstall = lib.optionalString enableCurrenciesUpdater '' + cp units_cur ${placeholder "out"}/bin/ + ''; + + doCheck = true; + + meta = { + homepage = "https://www.gnu.org/software/units/"; + description = "Unit conversion tool"; + longDescription = '' + GNU Units converts quantities expressed in various systems of measurement + to their equivalents in other systems of measurement. Like many similar + programs, it can handle multiplicative scale changes. It can also handle + nonlinear conversions such as Fahrenheit to Celsius or wire gauge, and it + can convert from and to sums of units, such as converting between meters + and feet plus inches. + + Beyond simple unit conversions, GNU Units can be used as a general-purpose + scientific calculator that keeps track of units in its calculations. You + can form arbitrary complex mathematical expressions of dimensions + including sums, products, quotients, powers, and even roots of + dimensions. Thus you can ensure accuracy and dimensional consistency when + working with long expressions that involve many different units that may + combine in complex ways. + + The units are defined in an external data file. You can use the extensive + data file that comes with this program, or you can provide your own data + file to suit your needs. You can also use your own data file to supplement + the standard data file. + ''; + license = with lib.licenses; [ gpl3Plus ]; + mainProgram = "units"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.all; + }; +}) |