From b15ed0d04b3c2c4e3efab34a9a04ce52150b1c31 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 23 Feb 2024 07:56:14 -0300 Subject: [PATCH 1/3] units: refactor - finalAttrs design pattern - split outputs - meta.longDescription - meta.mainProgram - meta.maintainers --- pkgs/tools/misc/units/default.nix | 78 ++++++++++++++++++++----------- pkgs/top-level/all-packages.nix | 5 +- 2 files changed, 52 insertions(+), 31 deletions(-) diff --git a/pkgs/tools/misc/units/default.nix b/pkgs/tools/misc/units/default.nix index 56dc43e7f61d..ec4228d60ed4 100644 --- a/pkgs/tools/misc/units/default.nix +++ b/pkgs/tools/misc/units/default.nix @@ -1,46 +1,70 @@ -{ - stdenv, - lib, - fetchurl, - readline, - enableCurrenciesUpdater ? true, - pythonPackages ? null +{ lib +, fetchurl +, python3 +, readline +, stdenv +, enableCurrenciesUpdater ? true }: -assert enableCurrenciesUpdater -> pythonPackages != null; - -let pythonEnv = pythonPackages.python.withPackages(ps: [ - ps.requests - ]); -in stdenv.mkDerivation rec { +let + pythonEnv = python3.withPackages(p: [ + p.requests + ]); +in stdenv.mkDerivation (finalAttrs: { pname = "units"; version = "2.22"; src = fetchurl { - url = "mirror://gnu/units/${pname}-${version}.tar.gz"; - sha256 = "sha256-XRPhIHch/ncm2Qa6HZLcDt2qn8JnWe0i47jRp5MSWEg="; + url = "mirror://gnu/units/units-${finalAttrs.version}.tar.gz"; + hash = "sha256-XRPhIHch/ncm2Qa6HZLcDt2qn8JnWe0i47jRp5MSWEg="; }; - buildInputs = [ readline ] - ++ lib.optionals enableCurrenciesUpdater [ - pythonEnv - ] - ; + 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 = '' + + postInstall = lib.optionalString enableCurrenciesUpdater '' cp units_cur ${placeholder "out"}/bin/ ''; doCheck = true; - meta = with lib; { - description = "Unit conversion tool"; + meta = { homepage = "https://www.gnu.org/software/units/"; - license = [ licenses.gpl3Plus ]; - platforms = platforms.all; - maintainers = [ maintainers.vrthra ]; + 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; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 561247510148..697abf7a8c40 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14715,10 +14715,7 @@ with pkgs; inherit (darwin) cctools; }; - units = callPackage ../tools/misc/units { - enableCurrenciesUpdater = true; - pythonPackages = python3Packages; - }; + units = callPackage ../tools/misc/units { }; unittest-cpp = callPackage ../development/libraries/unittest-cpp { }; From 1c11fe5df472d6d1bd56f4b7a369d235a14d9a6c Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 23 Feb 2024 08:06:22 -0300 Subject: [PATCH 2/3] units: migrate to by-name --- .../misc/units/default.nix => by-name/un/units/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{tools/misc/units/default.nix => by-name/un/units/package.nix} (100%) diff --git a/pkgs/tools/misc/units/default.nix b/pkgs/by-name/un/units/package.nix similarity index 100% rename from pkgs/tools/misc/units/default.nix rename to pkgs/by-name/un/units/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 697abf7a8c40..094e9a0d014a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14715,8 +14715,6 @@ with pkgs; inherit (darwin) cctools; }; - units = callPackage ../tools/misc/units { }; - unittest-cpp = callPackage ../development/libraries/unittest-cpp { }; unnaturalscrollwheels = callPackage ../tools/inputmethods/unnaturalscrollwheels { }; From 5ba99ec1033fceb318b5e4f70b2ece92cd80c31a Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 23 Feb 2024 08:11:06 -0300 Subject: [PATCH 3/3] units: 2.22 -> 2.23 Co-authored-by: R. RyanTM --- pkgs/by-name/un/units/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/un/units/package.nix b/pkgs/by-name/un/units/package.nix index ec4228d60ed4..dde43648cd73 100644 --- a/pkgs/by-name/un/units/package.nix +++ b/pkgs/by-name/un/units/package.nix @@ -12,11 +12,11 @@ let ]); in stdenv.mkDerivation (finalAttrs: { pname = "units"; - version = "2.22"; + version = "2.23"; src = fetchurl { url = "mirror://gnu/units/units-${finalAttrs.version}.tar.gz"; - hash = "sha256-XRPhIHch/ncm2Qa6HZLcDt2qn8JnWe0i47jRp5MSWEg="; + hash = "sha256-2Ve0USRZJcnmFMRRM5dEljDq+SvWK4SVugm741Ghc3A="; }; outputs = [ "out" "info" "man" ];